Uni.RC4 History
Hide minor edits - Show changes to output
Added lines 32-39:
!!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 è > 10'^100^'.
Added lines 1-32:
(:title RC4:) %titolo%''':: RC4 ::'''
[[Torna alla pagina di Crittografia -> Crittografia]]
!!Che cos'è RC4 è un algoritmo di cifratura a '''flusso''', e non a blocchi.
!!Cifrario a flusso Un [[cifrario a blocchi -> CifrariABlocchi]] 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. [[Torna alla pagina di Crittografia -> Crittografia]]
|