cerca
RC4
modifica cronologia stampa login logout

Wiki

UniCrema


Materie per semestre

Materie per anno

Materie per laurea


Help

RC4

 :: RC4 ::

Torna alla pagina di Crittografia

Che cos'è

RC4 è un algoritmo di cifratura a flusso, e non a blocchi.

Cifrario a flusso

Un cifrario a blocchi esamina un blocco alla volta, lo crittografa, e produce l'output per quel blocco.

Un cifrario a flussi, invece, è adatto ad operare su un flusso di dati, come potrebbe essere quello delle trasmissioni digitali.
L'idea è quella di produrre un keystream, ovvero un flusso di chiavi, che si può immaginare come parallelo al flusso di dati. Ogni byte del flusso di dati viene XORato con il byte corrispondente del keystream.

Il keystream viene generato dal cifrario, tramite un algoritmo. Trattandosi di una sequenza di numeri, deve avere alcune caratteristiche:

  • deve assomigliare ad una sequenza casuale
  • deve avee un periodo molto lungo

Questo vuol dire che, se un attaccante sta leggendo l'i-esimo byte del keystream, non deve avere nessuna informazione sul byte successivo.
Inoltre, si parla di periodo perché il keystream è pur sempre generato da un algoritmo, e prima o poi la sequenza di numeri riparte da capo. Il periodo è appunto quanti numeri vengono prodotti prima di ripartire da capo.

Il fatto che il keystream venga XORato con il datastream permette una rapida trasmissione dei dati: infatti, lo XOR è un'operazione che viene eseguita molto rapidamente.

Infine, occorre che sia il trasmittente che il ricevente producano lo stesso flusso di chiavi, ovvero che il generatore di keystream sia inizializzato con la stessa password, e che sia sincronizzato: deve partire allo stesso tempo, altrimenti i valori non coincidono. Quindi, il destinatario riceve il flusso, lo XORa con la keystream che ha generato lui, e ritorna al byte originale.

Ciò è reso possibile dalle proprietà dello XOR:

 a XOR a XOR b = b

Gli addendi uguali si elidono.
In questo caso, ho

 trasmesso = byte XOR key
 byte = trasmesso XOR key = byte XOR key XOR key = byte XOR key XOR key

I due XOR key si elidono.

Caratteristiche

RC4 usa una chiave lunga da 1 a 256 bytes.
Utilizza un vettore S di stato, con dimensione 256, contenente una permutazione degli interi da 0 a 255.
La keystream è generata da S, e dopo ogni passo il vettore S viene modificato.

Il periodo di RC4 è > 10100.

Torna alla pagina di Crittografia