Differenza tra cifrario a flusso e cifrario a blocchi

Differenza tra cifrario a flusso e cifrario a blocchi
Differenza tra cifrario a flusso e cifrario a blocchi

Video: Differenza tra cifrario a flusso e cifrario a blocchi

Video: Differenza tra cifrario a flusso e cifrario a blocchi
Video: ULISSe introduzione alla crittografia simmetrica, cifrari a blocchi e a flusso 2024, Novembre
Anonim

Cifra a flusso vs Cifra a blocchi | Cifrario a stato vs Cifrario a blocchi

In crittografia, i cifrari a flusso e i cifrari a blocchi sono due algoritmi di crittografia/decodifica che appartengono alla famiglia dei cifrari a chiave simmetrica. Tipicamente un cifrario prende un testo normale come input e produce un testo cifrato come output. I cifrari a blocchi crittografano blocchi di bit di lunghezza fissa utilizzando una trasformazione invariata. I cifrari a flusso crittografano flussi di bit di lunghezza variabile e utilizzano trasformazioni variabili su ciascun bit.

Cos'è un cifrario a flusso?

I cifrari a flusso appartengono alla famiglia dei cifrari a chiave simmetrica. I cifrari a flusso combinano bit di testo normale con un flusso di bit di cifratura pseudocasuale con l'uso dell'operazione XOR (o esclusivo). I cifrari a flusso crittografano le cifre di testo normale una alla volta con trasformazioni variabili per le cifre successive. Poiché la crittografia di ogni cifra dipende dallo stato corrente del motore di crittografia, i cifrari a flusso sono anche noti come cifrari di stato. In genere, bit/bit singoli vengono utilizzati come cifre singole. Per evitare problemi di sicurezza, è necessario assicurarsi che lo stesso stato iniziale non venga utilizzato più di una volta. Il cifrario a flusso più utilizzato è RC4.

Cos'è un cifrario a blocchi?

Un cifrario a blocchi è un altro cifrario a chiave simmetrica. I cifrari a blocchi operano su blocchi (gruppi di bit) a lunghezza fissa. I cifrari a blocchi utilizzano una trasformazione fissa (invariabile) per tutte le cifre del blocco. Ad esempio, quando un blocco x-bit di testo normale (insieme a una chiave segreta) viene fornito come input al motore di crittografia a blocchi, esso produce il corrispondente blocco di x-bit di testo crittografato. La trasformazione effettiva dipende dalla chiave segreta. Allo stesso modo, l'algoritmo di decrittazione recupera il blocco x-bit originale di testo in chiaro utilizzando il blocco x-bit di testo cifrato e la chiave segreta di cui sopra come input. Nel caso in cui il messaggio di input sia troppo lungo rispetto alla dimensione del blocco, verrà suddiviso in blocchi e questi blocchi verranno crittografati (singolarmente) utilizzando la stessa chiave. Tuttavia, poiché viene utilizzata la stessa chiave, ogni sequenza ripetuta nel testo normale diventa la stessa sequenza ripetuta nel testo cifrato e ciò potrebbe causare problemi di sicurezza. I codici a blocchi più diffusi sono DES (Data Encryption Standard) e AES (Advanced Encryption Standard).

Qual è la differenza tra uno Stream Cipher e un Block Cipher?

Sebbene sia i cifrari a flusso che quelli a blocchi appartengano alla famiglia dei cifrari a cifratura simmetrica, ci sono alcune differenze fondamentali. I cifrari a blocchi crittografano blocchi di bit di lunghezza fissa, mentre i cifrari a flusso combinano bit di testo normale con un flusso di bit di cifratura pseudocasuale utilizzando l'operazione XOR. Anche se i cifrari a blocchi utilizzano la stessa trasformazione, i cifrari a flusso utilizzano trasformazioni variabili in base allo stato del motore. I cifrari a flusso di solito vengono eseguiti più velocemente dei cifrari a blocchi. In termini di complessità hardware, i cifrari a flusso sono relativamente meno complessi. I cifrari a flusso sono la preferenza tipica rispetto ai cifrari a blocchi quando il testo in chiaro è disponibile in quantità variabili (ad esempio una connessione wifi sicura), perché i cifrari a blocchi non possono operare direttamente su blocchi più corti della dimensione del blocco. Ma a volte, la differenza tra cifrari a flusso e cifrari a blocchi non è molto chiara. Il motivo è che, quando si utilizzano determinate modalità operative, un cifrario a blocchi può essere utilizzato come cifrario a flusso consentendogli di crittografare la più piccola unità di dati disponibile.

Consigliato: