Qual è la differenza tra la crittografia del flusso e la crittografia a blocchi?
Crittografia del flusso
L'idea di base del codice di flusso è dividere il testo in piccoli blocchi, lunghi un bit o un byte e codificare ciascun blocco in base a molti blocchi precedenti. La crittografia del flusso utilizza una chiave di codifica diversa, un valore che deve essere inserito nell'algoritmo, per ogni bit o byte, in modo che produca un testo crittografato diverso ogni volta che viene codificato. Alcuni codici di flusso usano un generatore di flusso chiave, che produce un flusso di bit a caso o quasi in modo casuale. La crittografia esegue un'operazione booleana, nota come OR esclusivo, tra i bit nel flusso di chiavi e i bit nel testo normale per produrre un testo crittografato.
Blocca la crittografia
L'idea di base di un codice a blocchi è quella di dividere il testo in blocchi relativamente lunghi, in genere 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 l'ordine in cui la sostituzione, il trasporto e altre funzioni matematiche vengono eseguite in ciascun blocco. Algoritmi forti significano che il reverse engineering del sistema di crittografia, o la determinazione di quali funzioni sono state eseguite in ogni blocco, in quale ordine, è praticamente impossibile.
Diffusione e confusione
La crittografia a blocchi utilizza tecniche note come confusione e diffusione per convertire il testo normale in un testo crittografato. L'idea alla base della confusione è di rendere il rapporto tra la chiave di crittografia e il testo semplice il più complesso possibile. Idealmente, ogni carattere della chiave di crittografia deve avere influenza su ogni carattere del testo crittografato. Al contrario, la diffusione estende l'influenza di ciascun carattere in testo semplice su più caratteri nel testo cifrato, rendendo la crittografia meno suscettibile agli attacchi statistici.
Pro e contro
Il fatto che la crittografia del flusso crittografa e decodifichi le informazioni un bit alla volta significa che sono particolarmente adattabili alle applicazioni hardware in tempo reale, come le applicazioni audio e video. La crittografia del flusso è più debole e meno efficiente della crittografia a blocchi quando si tratta di applicazioni software e viene utilizzata meno frequentemente in quell'area. La crittografia a blocchi è più facile da implementare nel software perché crittografa le informazioni in lunghezza blues che il software già utilizza. La chiave di crittografia ha spesso la stessa lunghezza della dimensione del blocco.