Qual è la differenza tra cifrari a flusso e cifrari a blocchi?

...

I cifrari a flusso sono adatti alle applicazioni hardware in tempo reale.

Un cifrario è un insieme di regole matematiche, o algoritmi, usati per convertire testo leggibile, o testo in chiaro, in testo illeggibile, o testo cifrato. La differenza principale tra i codici a flusso e i codici a blocchi è che i codici a flusso funzionano su flussi di testo, un bit o un byte alla volta, mentre i codici a blocchi funzionano su blocchi di testo.

Cifratura del flusso

L'idea di base di un cifrario a flusso è dividere il testo in piccoli blocchi, lunghi un bit o un byte, e codificare ciascun blocco a seconda di molti blocchi precedenti. I cifrari a flusso utilizzano una chiave di crittografia diversa, un valore che deve essere inserito nell'algoritmo, per ogni bit o byte, quindi lo stesso bit o byte produce un testo cifrato diverso ogni volta che viene crittografato. Alcuni cifrari a flusso utilizzano un generatore di flussi di chiavi, che produce un flusso di bit casuale o quasi. Il cifrario esegue un'operazione booleana, nota come OR esclusivo, tra i bit nel keystream e i bit nel testo in chiaro per produrre il testo cifrato.

Video del giorno

Cifratura a blocchi

L'idea di base di un cifrario a blocchi è dividere il testo in blocchi relativamente grandi, tipicamente lunghi 64 o 128 bit, e codificare ciascun blocco separatamente. La stessa chiave di crittografia viene utilizzata per ogni blocco ed è la chiave di crittografia che determina il ordine in cui vengono eseguite la sostituzione, il trasporto e altre funzioni matematiche su ciascuno bloccare. Algoritmi potenti significano che il reverse engineering del codice, o determinare quali funzioni sono state eseguite su ciascun blocco, in quale ordine, è praticamente impossibile.

Diffusione e confusione

I cifrari a blocchi utilizzano tecniche note come confusione e diffusione per crittografare il testo in chiaro in testo cifrato. L'idea alla base della confusione è rendere la relazione tra la chiave di crittografia e il testo cifrato il più complessa possibile. Idealmente, ogni carattere nella chiave di crittografia dovrebbe influenzare ogni carattere nel testo cifrato. Al contrario, la diffusione diffonde l'influenza di ciascun carattere nel testo in chiaro su più caratteri nel testo cifrato, rendendo il cifrario meno suscettibile agli attacchi statistici.

Pro e contro

Il fatto che i cifrari a flusso crittografano e decrittografano i dati un bit alla volta significa che sono particolarmente adatti alle applicazioni hardware in tempo reale, come le applicazioni audio e video. I cifrari a flusso sono più deboli e meno efficienti dei cifrari a blocchi quando si tratta di applicazioni software e sono usati meno frequentemente in quella sfera. I codici a blocchi sono più facili da implementare nel software perché crittografano i dati in blocchi di una lunghezza già utilizzata dal software. La chiave di crittografia ha spesso la stessa lunghezza della dimensione del blocco.