Il cifrario di Feistel è una delle architetture fondamentali utilizzate nella progettazione di cifrari a blocchi simmetrici.

Introdotto da Horst Feistel, questo schema si basa sul concetto di suddividere il testo in chiaro in blocchi e applicare una serie di trasformazioni ripetute, chiamate round, su ciascun blocco.

Questo approccio permette di ottenere una cifratura robusta, pur mantenendo la possibilità di decifrare il testo cifrato in modo efficiente.


Concetto di base (extra)

L'idea alla base del cifrario di Feistel è quella di approssimare un cifrario a blocchi ideale utilizzando il concetto di product cipher.

Questo significa che si combinano più trasformazioni semplici (sostituzioni, traslazioni e permutazioni) in modo tale che il risultato finale, o "prodotto", sia crittograficamente più sicuro rispetto a ciascuna trasformazione presa singolarmente.


Vantaggi del Cifrario di Feistel

Uno dei principali punti di forza del cifrario di Feistel è che il processo di cifratura e decifratura è molto simile, differenziandosi solo per l'ordine delle chiavi utilizzate nei round.

Questo rende il cifrario di Feistel particolarmente efficiente nella decifratura, un aspetto fondamentale in molte applicazioni crittografiche pratiche.


Funzionamento pratico

In un cifrario di Feistel, si prende un messaggio di lunghezza $n$ bit e lo si divide in due parti uguali. In ciascun round, una metà del blocco viene trasformata attraverso una funzione dipendente dalla chiave segreta, e l'altra metà viene combinata con il risultato ottenuto. Questo processo si ripete per diversi round.

Per un cifrario a blocchi con una lunghezza di chiave di $K$ bit e un blocco di $n$ bit, il sistema permette fino a $2^K$ possibili trasformazioni. Questo è significativamente inferiore rispetto alle $2^n!$ trasformazioni di un cifrario a blocchi ideale, ma è sufficiente per garantire una buona sicurezza crittografica, mantenendo l'efficienza computazionale.


Claude Shannon e i Cifrari a Sostituzione-Permutazione

Nel 1949, Claude Shannon introdusse il concetto di reti di sostituzione-permutazione (S-P), che oggi costituiscono la base dei moderni cifrari a blocchi.

Le reti S-P utilizzano due operazioni crittografiche fondamentali: