Claude Shannon, spesso considerato il padre della crittografia moderna e della teoria dell'informazione, ha fornito principi fondamentali che hanno profondamente influenzato la progettazione di sistemi crittografici sicuri. Il suo fondamentale articolo del 1949, "Communication Theory of Secrecy Systems", ha introdotto diversi concetti teorici che continuano a guidare i crittografi, in particolare per quanto riguarda la struttura e i requisiti dei cifrari a blocchi. Quando si considera cosa dovrebbe includere un cifrario a blocchi secondo Shannon, è necessario discutere non solo i criteri matematici e strutturali, ma anche i concetti di confusione e diffusione, la loro applicazione pratica e le loro implicazioni per la progettazione e il funzionamento dei cifrari a blocchi nei sistemi moderni.
I principi di Shannon: confusione e diffusione
Shannon ha individuato due proprietà principali che un sistema di cifratura robusto dovrebbe possedere: confusione e diffusione.
1. Confusione:
La proprietà di confusione mira a oscurare la relazione tra il testo cifrato e la chiave. In termini più semplici, dovrebbe essere difficile per un avversario dedurre la chiave, anche se ha accesso al testo cifrato e, in alcuni casi, al testo in chiaro corrispondente. La confusione si ottiene tipicamente utilizzando trasformazioni complesse e non lineari all'interno della struttura del cifrario, come le caselle di sostituzione (S-box). L'effetto è che la modifica di un singolo bit della chiave porta a modifiche imprevedibili e ampiamente variabili nel testo cifrato, vanificando gli attacchi statistici e algebrici.
*Esempio:* Nell'Advanced Encryption Standard (AES), la confusione è causata dall'uso di S-box nella fase SubBytes, che sostituisce ogni byte del blocco con un altro secondo una trasformazione fissa e non lineare.
2. Diffusione:
La diffusione è la proprietà che assicura che l'influenza di un simbolo di testo in chiaro si diffonda su molti simboli di testo cifrato. Lo scopo è quello di dissipare la struttura statistica del testo in chiaro sulla maggior parte del testo cifrato, in modo da ridurre al minimo qualsiasi relazione statistica tra testo in chiaro e testo cifrato. Questo risultato si ottiene spesso tramite operazioni di permutazione, come il rimescolamento di bit o byte all'interno del blocco. L'effetto valanga è una conseguenza diretta di una diffusione corretta: una piccola modifica nel testo in chiaro o nella chiave porta a una modifica significativa e imprevedibile nel testo cifrato.
*Esempio:* Nel Data Encryption Standard (DES), la diffusione è assicurata dalle operazioni di permutazione e dalla miscelazione dei bit a ogni round, in modo che dopo diversi round, la modifica di un bit del testo in chiaro influisca su molti bit del testo cifrato.
Cifrari di prodotto: combinazione di confusione e diffusione
L'analisi di Shannon ha dimostrato che una singola applicazione di confusione o diffusione non è sufficiente per una crittografia forte. Ha invece raccomandato di costruire "cifrari di prodotto", costituiti da più cicli o strati, ognuno dei quali combina confusione e diffusione. Questo approccio aumenta esponenzialmente la sicurezza del cifrario, combinando gli effetti di ciascuna proprietà.
*Esempio:* Sia DES che AES utilizzano più round (16 per DES, 10-14 per AES, a seconda della dimensione della chiave), ognuno dei quali incorpora sia fasi di sostituzione (confusione) che di permutazione/miscelazione (diffusione).
Requisiti strutturali di un cifrario a blocchi secondo Shannon
In base ai principi di Shannon, un cifrario a blocchi dovrebbe includere:
- Operazioni di sostituzione non lineare (per confusione):
Queste operazioni sostituiscono i valori di input con valori di output sulla base di una trasformazione non lineare, rendendo la relazione tra testo in chiaro, testo cifrato e chiave complessa e resistente alla crittoanalisi lineare e differenziale.
- Operazioni di permutazione/trasposizione (per diffusione):
Queste operazioni riorganizzano i bit o i byte del blocco, assicurando che la struttura statistica del testo in chiaro sia distribuita in tutto il testo cifrato.
- Più cicli di lavorazione (struttura del prodotto):
La combinazione di sostituzione e permutazione viene applicata iterativamente su più round, aggravando gli effetti di confusione e diffusione.
- Mixaggio chiave:
La progettazione della crittografia dovrebbe incorporare la chiave nel processo di trasformazione in più fasi, solitamente a ogni round, per impedire attacchi che sfruttano l'utilizzo di chiavi fisse o prevedibili.
- Resistenza agli attacchi crittoanalitici noti:
Sebbene non sia stato dichiarato esplicitamente da Shannon, l'interpretazione moderna dei suoi principi richiede che il progetto sia robusto contro attacchi statistici, di forza bruta e di crittoanalisi avanzata (come la crittoanalisi lineare e differenziale), che sfruttano le debolezze nella confusione o nella diffusione.
Applicazione alla progettazione moderna di cifrari a blocchi
I cifrari a blocchi moderni come DES, AES e altri sono implementazioni dirette del concetto di cifrario a prodotto di Shannon. Ogni ciclo di cifratura include tipicamente:
- Aggiunta chiave: Combinazione della chiave rotonda con il blocco corrente (solitamente tramite XOR).
- Livello di sostituzione: Applicazione di una S-box non lineare a ciascun byte o gruppo di bit.
- Strato di permutazione o diffusione: Mescolare o combinare i bit in modo che i bit di output dipendano da più bit di input.
Ad esempio, AES utilizza i seguenti passaggi in ogni round (dopo l'aggiunta iniziale della chiave):
1. *SubBytes:* Sostituzione non lineare di ogni byte (confusione).
2. *ShiftRows:* Spostamento ciclico dei byte in ogni riga (diffusione parziale).
3. *MixColumns:* Miscelazione di ciascuna colonna dello stato (diffusione completa).
4. *AddRoundKey:* XOR con una chiave specifica del round derivata dalla chiave principale.
Anche il DES, sebbene oggi sia considerato insicuro a causa delle ridotte dimensioni della sua chiave, segue il framework di Shannon:
1. *Permutazione iniziale:* riorganizzazione dei bit di input.
2. *Sedici round:* ognuno dei quali prevede espansione, sostituzione (tramite S-box), permutazione e mixaggio delle chiavi.
3. *Permutazione finale:* un'altra riorganizzazione dei bit.
Modalità di funzionamento e loro relazione con i principi di Shannon
I cifrari a blocchi sono progettati per crittografare blocchi di dati di dimensione fissa (ad esempio, 128 bit per AES). Tuttavia, i messaggi reali sono spesso molto più grandi o più piccoli. Le modalità operative, come ECB, CBC, CFB, OFB e CTR, definiscono come i cifrari a blocchi vengono applicati a flussi di dati di lunghezza arbitraria. Mentre le modalità operative gestiscono il modo in cui i blocchi vengono concatenati e la propagazione degli errori, la sicurezza di base del cifrario a blocchi in qualsiasi modalità dipende dalla corretta implementazione dei principi di confusione e diffusione, come specificato da Shannon.
Per esempio:
- ECB (Modalità Codebook Elettronico):
Ogni blocco di testo in chiaro viene crittografato in modo indipendente. Questa modalità non fornisce ulteriore diffusione tra i blocchi e quindi lascia trapelare i pattern se lo stesso blocco di testo in chiaro viene ripetuto all'interno di un messaggio.
- CBC (Cipher Block Chaining):
Ogni blocco di testo in chiaro viene sottoposto a XOR con il precedente blocco di testo cifrato prima della crittografia, aumentando la diffusione tra blocchi e rendendo gli schemi meno visibili.
- CTR (Modalità contatore):
Applica il cifrario a blocchi a un valore di contatore e applica l'operazione XOR al risultato con il testo in chiaro, trasformando il cifrario a blocchi in un cifrario a flusso. Mentre il cifrario a blocchi principale deve comunque generare confusione e diffusione, questa modalità garantisce che blocchi di testo in chiaro identici vengano crittografati in blocchi di testo cifrato diversi a causa del contatore variabile.
Esempi che illustrano i criteri di Shannon
Si consideri un ipotetico cifrario a blocchi con scarsa confusione: si supponga che la fase di sostituzione sia una semplice mappatura lineare (ad esempio, l'incremento di 1 per ogni byte). Un aggressore potrebbe facilmente dedurre la trasformazione e invertirla, rivelando la chiave o il testo in chiaro. Analogamente, se la fase di diffusione è inadeguata, ad esempio scambiando solo byte adiacenti, le modifiche localizzate nel testo in chiaro influiscono solo su piccole parti del testo cifrato, rendendo il cifrario suscettibile di analisi.
D'altra parte, in situazioni di forte confusione e diffusione, come nell'AES, la modifica di un singolo bit del testo in chiaro o della chiave, dopo diversi cicli, influenzerà tutti i bit del testo cifrato in modo imprevedibile. Questo è l'effetto valanga, una manifestazione diretta dei principi di Shannon.
Giustificazione teorica e implicazioni pratiche
Shannon introdusse il concetto di "distanza di unicità", la quantità minima di testo cifrato necessaria per determinare in modo univoco la chiave di un dato cifrario. La distanza di unicità dipende dalla dimensione dello spazio delle chiavi, dalla ridondanza del linguaggio del testo in chiaro e dalla capacità del cifrario di distruggere le strutture statistiche (diffusione). Un cifrario con elevata confusione e diffusione aumenta la distanza di unicità, rendendo impossibile per un aggressore recuperare la chiave, anche con un testo cifrato di notevoli dimensioni.
Inoltre, i principi di Shannon sono rilevanti non solo per la progettazione dei cifrari, ma anche per la loro valutazione. Nel valutare la sicurezza di un cifrario a blocchi, i crittografi analizzano il grado di confusione e diffusione in ogni ciclo e la struttura complessiva, assicurandosi che non vi siano scorciatoie per attacchi che sfruttano relazioni statistiche o debolezze strutturali.
Paragrafo riassuntivo
I criteri di Shannon per un cifrario a blocchi sicuro sono sia teorici che pratici. Fondamentalmente, un cifrario a blocchi dovrebbe incorporare un elevato grado di confusione e diffusione, ottenuto attraverso sostituzioni non lineari, permutazioni e ripetuti cicli di elaborazione. La combinazione di questi elementi interrompe gli schemi statistici, offusca la chiave e garantisce che anche piccole modifiche al testo in chiaro o alla chiave determinino modifiche diffuse e imprevedibili al testo cifrato. Questi principi, formulati per la prima volta a metà del XX secolo, rimangono il fondamento di tutti i moderni progetti di cifrario a blocchi e sono indispensabili per garantire la riservatezza e la sicurezza delle comunicazioni digitali.
Altre domande e risposte recenti riguardanti Applicazioni dei cifrari a blocchi:
- La sicurezza dei cifrari a blocchi dipende dalla combinazione ripetuta di operazioni di confusione e diffusione?
- Diffusione significa che singoli bit di testo cifrato sono influenzati da molti bit di testo in chiaro?
- La modalità BCE suddivide il testo in chiaro di input di grandi dimensioni in blocchi successivi
- Possiamo usare un codice a blocchi per costruire una funzione hash o un MAC?
- La modalità OFB può essere utilizzata come generatori di keystream?
- Può una crittografia essere deterministica?
- Quali sono le modalità operative?
- Cosa fa la modalità BCE ai semplici codici a blocchi?
- Il PSRNG può essere realizzato tramite cifrari a blocchi?
- È possibile costruire un MAC tramite cifrari a blocchi?
Visualizza altre domande e risposte in Applicazioni di cifrari a blocchi