0Pricing
Cryptology Academy · Lezione

Reti di Feistel: elementi costitutivi dei cifrari moderni

Comprenda la struttura di Feistel alla base di DES e di molti cifrari a blocchi moderni.

Reti di Feistel: elementi costitutivi dei cifrari moderni è una lezione Cryptology Academy gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Cryptology Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Cryptology Academy include 4 lezioni in totale.

L'intuizione di Horst Feistel all'IBM

All'inizio degli anni Settanta, Horst Feistel lavorava presso IBM Research al cifrario Lucifer quando ebbe un'intuizione fondamentale: è possibile costruire un cifrario invertibile usando una funzione di round non invertibile.

Fu una svolta rivoluzionaria, perché progettare funzioni invertibili che siano anche sicure è difficile. La costruzione di Feistel aggira completamente questo requisito, consentendo di usare funzioni di round unidirezionali arbitrariamente complesse.

La struttura di divisione e mescolamento

In un cifrario Feistel, il blocco di input viene diviso in due metà uguali: L (sinistra) e R (destra). Ogni round applica la funzione di round F a R, esegue lo XOR del risultato con L, quindi scambia le metà.

Dopo n round, le due metà vengono ricombinate per produrre il testo cifrato. Lo scambio garantisce che entrambe le metà vengano elaborate in round alternati, mescolandole completamente.

La funzione di round F

La funzione di round F in una rete Feistel riceve in input la metà destra e la sottochiave del round e produce un output sottoposto a XOR con la metà sinistra. È fondamentale che F non debba essere invertibile.

F può essere arbitrariamente complessa: qualsiasi combinazione di sostituzioni, permutazioni, XOR e aritmetica modulare. Quanto più F è complessa e non lineare, tanto più forte è il cifrario, perché la decifratura non deve mai invertire F.

Come funziona la decifratura Feistel

La decifratura in un cifrario Feistel usa esattamente la stessa struttura della cifratura, ma applica le sottochiavi dei round in ordine inverso. Ciò è possibile perché XOR è il proprio inverso: se A XOR B = C, allora C XOR B = A.

Poiché la decifratura non richiama mai F^-1 (l'inversa di F), la funzione di round può essere un hash irreversibile, una tabella di ricerca o qualsiasi operazione complessa senza compromettere l'invertibilità del cifrario.

Perché le reti Feistel sono facilmente invertibili

L'eleganza matematica delle reti Feistel consiste nel fatto che la struttura XOR garantisce l'invertibilità indipendentemente da ciò che fa F. Anche se F è una funzione a senso unico come SHA-256, il cifrario Feistel complessivo rimane invertibile.

Questo rende i cifrari Feistel estremamente flessibili. I crittografi possono concentrarsi interamente sull'aumentare al massimo la confusione e la diffusione di F, sapendo che l'invertibilità è gestita dalla struttura stessa della rete.

DES come rete Feistel a 16 round

Il Data Encryption Standard (DES), pubblicato nel 1977, è un cifrario Feistel a 16 round che opera su blocchi di 64 bit con una chiave di 56 bit. Ogni round usa una diversa sottochiave di 48 bit derivata dalla chiave principale.

La funzione di round di DES include una permutazione di espansione, lo XOR con la sottochiave, otto S-box che forniscono non linearità e una permutazione con P-box. La combinazione fornisce sia confusione sia diffusione, come richiesto dai principi di progettazione dei cifrari di Shannon.

Blowfish e Twofish

Blowfish, progettato da Bruce Schneier nel 1993, è un cifrario Feistel con lunghezza della chiave variabile (32-448 bit) e 16 round. Usa S-box dipendenti dalla chiave, rendendo impraticabili gli attacchi precalcolati.

Twofish, finalista nella competizione AES, estende le idee di Blowfish con blocchi di 128 bit e 16 round. Entrambi non sono stati violati e vengono usati in applicazioni come l'hashing delle password di bcrypt, che usa una versione modificata di Blowfish.

Feistel bilanciato e sbilanciato

Un cifrario Feistel bilanciato divide il blocco in due metà uguali. Un Feistel sbilanciato usa metà disuguali, ad esempio con una divisione 3/4 e 1/4.

Le reti Feistel sbilanciate possono offrire vantaggi in termini di sicurezza in determinati contesti e vengono usate in alcuni cifrari specializzati. La famiglia di cifrari CAST usa una struttura Feistel bilanciata a 64 bit.

Teorema di Luby-Rackoff

Nel 1988, Michael Luby e Charles Rackoff dimostrarono che una rete Feistel a 3 round che usa funzioni di round pseudocasuali è una permutazione pseudocasuale sicura (PRP), mentre una versione a 4 round è una PRP forte.

Questo risultato teorico fornì alle reti Feistel una solida base di sicurezza dimostrabile, non soltanto una fiducia basata sull'esperienza. Confermò che la struttura Feistel contribuisce alla sicurezza oltre il semplice ruolo della funzione di round.

Feistel contro SPN: perché AES usa SPN

La rete di sostituzione-permutazione (SPN) usata da AES applica sostituzione e permutazione all'intero blocco simultaneamente, anziché a metà del blocco per ogni round. Ciò garantisce una diffusione più rapida.

AES raggiunge la diffusione completa in soli 4 round, mentre la struttura Feistel di DES richiede più round per ottenere una diffusione comparabile. La SPN di AES inoltre si adatta meglio alle architetture dei processori moderni con istruzioni SIMD.

Dimostrazioni di sicurezza e modello dell'oracolo casuale

Il teorema di Luby-Rackoff tratta la funzione di round F come una funzione veramente casuale. Nella pratica, F è una funzione pseudocasuale, cioè un cifrario con chiave o un hash, non un vero oracolo casuale.

Questo divario tra le dimostrazioni teoriche e le implementazioni pratiche è un tema ricorrente nella crittografia. Le dimostrazioni forniscono fiducia, ma si basano su modelli idealizzati. La sicurezza nel mondo reale dipende anche da implementazioni sicure prive di vulnerabilità dei canali laterali.

Quiz sulla struttura Feistel

Metta alla prova la Sua comprensione della progettazione delle reti Feistel.

Punti chiave: reti Feistel

Le reti Feistel sono strutture di cifrari a blocchi che usano una funzione di round che non deve essere invertibile. La decifratura funziona eseguendo la stessa struttura al contrario, con le sottochiavi in ordine inverso.

DES, Blowfish e Twofish sono tutti cifrari Feistel. Il teorema di Luby-Rackoff fornisce garanzie teoriche di sicurezza. AES usa invece una struttura SPN, che offre una diffusione migliore per round.

Domande Frequenti

La lezione «Reti di Feistel: elementi costitutivi dei cifrari moderni» è gratuita?

Sì — il testo completo di «Reti di Feistel: elementi costitutivi dei cifrari moderni» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Cryptology Academy, passa a CoddyKit PRO. Il corso Cryptology Academy include 4 lezioni in totale.

Cosa imparerò in «Reti di Feistel: elementi costitutivi dei cifrari moderni»?

Comprenda la struttura di Feistel alla base di DES e di molti cifrari a blocchi moderni. Eserciti Cryptology Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Cryptology Academy?

Non è richiesta alcuna esperienza precedente. Cryptology Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.

Quanto tempo richiede la lezione «Reti di Feistel: elementi costitutivi dei cifrari moderni»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Cryptology Academy?

Sì. Ogni lezione Cryptology Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Il cifrario Playfair
  2. ADFGVX e frazionamento
  3. Cifrari Beaufort e a chiave corrente
  4. Reti di Feistel: elementi costitutivi dei cifrari moderni
← Torna a Cryptology Academy