RC4

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
RC4
RC4.png
Generarea de 1 octeți din fluxul de chei din RC4
General
Designeri Ron Rivest
Prima publicație 1987 (niciodată lansat oficial)
Provin de la RC2
Succesori RC5 , RC6
Detalii
Dimensiunea cheii 128 biți
Structura Keystream
Criptanaliză mai bună
RC4 este un algoritm care a fost încălcat în mai multe moduri și, prin urmare, nu se mai crede că este sigur. [1]

În criptografie, RC4 este unul dintre cei mai renumiți și răspândiți algoritmi de criptare a fluxului de chei simetric , utilizat pe scară largă în protocoale precum SSL și WEP .

Istorie

RC4 a fost dezvoltat de Ron Rivest de la RSA Security în 1987 : ca și în ceilalți algoritmi ai săi (vezi RC2 , RC5 și RC6 ), acronimul RC reprezintă Rivest Cipher sau, alternativ, Codul lui Ron [2] . Datorită simplității sale, datorită căreia este ușor de pus în aplicare atât la software și hardware de nivel, și viteza, utilizarea răspândirea ei rapid și RC4 a devenit în curând algoritmul de bază de protocoale importante , cum ar fi WEP și WPA pentru criptare. De comunicații în wireless carduri, și SSL și TLS pentru protecția datelor conexiunilor la internet și a rețelelor TCP / IP în general.

Algoritmul a rămas inițial secret (securitate prin obscuritate ), dar în septembrie 1994 a apărut anonim, mai întâi pe lista de distribuție CypherPunks și apoi pe grupul internațional de știri sci.crypt , codul unui algoritm criptografic ale cărui rezultate au fost identice cu cele generate de programe care au implementat RC4 oficial. În ciuda difuzării bruște a codului respectiv, RSA nu a recunoscut niciodată că acel algoritm era RC4 până când, la 27 octombrie 2014, Rivest însuși a publicat pseudocodul RC4 original [3] . Acest lucru a creat o situație ambiguă la nivelul drepturilor de autor în care, deși algoritmul nu mai era secret, numele său a rămas protejat prin drepturi de autor. Prin urmare, pentru a evita posibilele repercusiuni juridice, algoritmul este denumit în general ARCFOUR sau ARC4, abrevierea lui Alleged RC4 ( presupus , care în italiană înseamnă „presupus”).

Descriere

RC4 generează un flux de biți pseudo-aleator ( keystream ); acest flux este combinat prin intermediul unei operații XOR cu textul clar (text clar) pentru a obține textul cifrat . Operațiunea de decriptare are loc în același mod, trecând textul cifrat în intrare și obținând ieșirea în text clar (acest lucru se datorează faptului că XOR este o operație simetrică).

Pentru a genera fluxul de chei, algoritmul folosește o cutie S de 256 octeți și 2 indici de 8 biți , în general identificați cu literele „i” și „j”. Cheia de criptare furnizată de utilizator are în general o lungime de 40 până la 256 de biți (5 până la 32 de caractere) și este utilizată pentru a inițializa caseta S folosind funcția KSA , abrevierea Algoritmului de planificare chei ( algoritmul de gestionare a cheilor ). Iată reprezentarea pseudo-codului ( cheia este cheia utilizatorului, lungimea cheii este lungimea cheii, S este matricea care reprezintă caseta S):

 pentru i = 0 până la 255
  S [i] = i
Următorul
j = 0
pentru i = 0 până la 255
  j = (j + S [i] + tastă [i mod keylength]) mod 256
  swap (S [i], S [j])
Următorul

Odată ce acest pas este finalizat, fluxul de biți generat utilizând funcția algoritmului Pseudo-Random Generation Algorithm (PRGA) este combinat cu textul simplu folosind XOR. Aici, în pseudo-cod, inima algoritmului RC4 ( intrarea conține textul clar, scoate textul cifrat):

 i = 0
j = 0
pentru l = 0 până la len (intrare)
    i = (i + 1) mod 256
    j = (j + S [i]) mod 256
    swap (S [i], S [j])
    ieșire [l] = S [(S [i] + S [j]) mod 256] Intrare XOR [l]
Următorul

Siguranță

RC4 plătește pentru simplitatea sa din punct de vedere al securității: acest lucru este foarte slab, iar algoritmul este crackabil cu relativă ușurință și viteză, atât de mult încât utilizarea acestuia nu mai este recomandabilă. De fapt, RC4 arată un comportament care nu este adevărat PRNG : analiza fluxului de date aleatorii denotă o anumită periodicitate în primii 256 de octeți. Acesta este motivul pentru care multe implementări ale algoritmului elimină acești octeți prin looping prin 256 de iterații în repaus înainte de a începe să utilizeze fluxul de chei. O altă slăbiciune este legată de corelația puternică care există între cheie și fluxul de chei, atât de mult încât, în 2005, a fost găsit un mod de a întrerupe o conexiune wireless securizată cu WEP în mai puțin de un minut [1] .

Datorită acestor puncte slabe, Mozilla a eliminat suportul pentru criptarea RC4 din Firefox începând cu versiunea 44, lansată pe 26 ianuarie 2016 . [4]

Notă

  1. ^ A b(EN) Cryptology ePrint Archive, 2007/120 Report: Breaking 104 bit WEP in less than 60 seconds (Cum se încalcă o rețea WEP de 104 biți în mai puțin de 60 de secunde) , pe eprint.iacr.org. Adus 26.01.2016 . ]
  2. ^(EN) Întrebări frecvente despre Ron Rivest
  3. ^ (EN) Rivest, Ronald L. și Schuldt, Jacob CN, Spritz - un cod de flux RC4 spongios, precum și o funcție hash (PDF) a people.csail.mit.edu, 27 octombrie 2014.
  4. ^(EN) Mozilla, Firefox - Note (44.0) , pe mozilla.org. Adus 26.01.2016 .

Bibliografie

  • William Stallings, Capitolul 6 - Prezentări despre criptarea simetrică, Paragraful 6.3 - Criptarea fluxului și RC4 , în Criptarea și securitatea rețelei , ed. Italiană editat de Luca Salgarelli, ediția a II-a, Milano, McGraw-Hill, octombrie 2006, pp. 195-200., ISBN 88-386-6377-7 .

Elemente conexe

linkuri externe