Algoritmi a blocchi e a streaming
Gli algoritmi crittografici in crittografia sono suddivisi in due sottocategorie: algoritmi a blocchi (block cipher) ed algoritmi a streaming.
Un algoritmo crittografico a blocchi (cifratura a blocchi), consiste di un algoritmo che divide il testo da cifrare in blocchi di dimensione n e prosegue nella cifratura di ogni singolo blocco in successione.
Un algoritmo crittografico a streaming è del tutto simile ad un sistema a blocchi (n), solo che n = 1.
I sistemi che prendono in input un singolo carattere (n=1 byte) alla volta, e ne restituiscono l’output cifrato sono sistemi classificati di tipo stream.
In realtà, tutti i sistemi possono essere ricondotti a sistemi di tipo a blocchi, senza troppa fatica.
E’ importante chiarire che le due sottocategorie si differenziano solo per le modalità di interazione con il testo sorgente.
I sistemi stream sono importanti per la velocità computazionale richiesta e per le poche risorse stimate.
I sistemi simmetrici, in commercio oggi, adottano un approccio di tipo “a blocchi”, per svariate ragioni, che possiamo così riassumere:
- sicurezza intrinseca del sistema
- resistenza stimata ad attacchi di tipo lessicale (freq. Letterale)
- migliore capacità di interazione con dati binari (files ed affiliati)
- migliore gestione dell’input (efficienza = velocità)