La crittoanalisi differenziale è una forma di crittoanalisi applicabile principalmente ai codici a blocchi, che prevede l'analisi dell'effetto di particolari differenze nelle coppie di input sulle differenze in output. Questo metodo è stato introdotto da Eli Biham e Adi Shamir alla fine degli anni '1980 e da allora è diventato uno strumento fondamentale nel toolkit del crittoanalista. Il Data Encryption Standard (DES), un algoritmo a chiave simmetrica per la crittografia dei dati digitali, è stato uno dei principali argomenti di crittoanalisi differenziale.
L'algoritmo DES, progettato da IBM all'inizio degli anni '1970 e adottato come standard federale nel 1977 dal National Institute of Standards and Technology (NIST), opera su blocchi di dati a 64 bit utilizzando una chiave a 56 bit. DES impiega 16 round di una rete Feistel, dove ogni round consiste in una serie di sostituzioni e permutazioni determinate dalla pianificazione chiave.
Per capire se il DES può essere rotto mediante la crittoanalisi differenziale, è importante considerare le specificità sia della struttura del DES che i principi della crittoanalisi differenziale.
Struttura DES e pianificazione chiave
Il DES si basa su una combinazione di operazioni di sostituzione e permutazione. Ogni round di DES prevede i seguenti passaggi:
1. Espansione (E-box): Il mezzo blocco da 32 bit viene espanso a 48 bit utilizzando una permutazione di espansione.
2. Mixaggio chiave: Il mezzo blocco espanso viene sottoposto a XOR con una chiave rotonda derivata dalla chiave principale utilizzando una pianificazione delle chiavi.
3. Sostituzione (S-box): Il risultato a 48 bit è diviso in otto segmenti a 6 bit, ciascuno dei quali viene fatto passare attraverso una S-box corrispondente per produrre un output a 4 bit. Le otto uscite a 4 bit sono concatenate per formare un blocco a 32 bit.
4. Permutazione (P-box): Il blocco a 32 bit viene permutato utilizzando una tabella di permutazione fissa.
5. XOR e scambio: Il blocco permutato viene sottoposto a XOR con l'altra metà del blocco dati e le metà vengono scambiate.
La pianificazione delle chiavi genera una serie di 16 chiavi rotonde, ciascuna lunga 48 bit, dalla chiave originale a 56 bit. Questo processo implica operazioni di scelta permutata e spostamenti circolari a sinistra.
Principi di crittoanalisi differenziale
La crittoanalisi differenziale implica lo studio di come le differenze nelle coppie di testo in chiaro si propagano attraverso la cifra per produrre differenze nel testo cifrato. L'idea di base è selezionare coppie di testi in chiaro che presentano una differenza specifica, crittografarli e analizzare le risultanti differenze nel testo cifrato. Osservando come queste differenze si evolvono nel corso dei cicli di cifratura, un utente malintenzionato può dedurre informazioni sulla chiave.
I concetti chiave nella crittoanalisi differenziale includono:
- Differenziale: La differenza XOR tra due valori. Ad esempio, se
e
sono due testi in chiaro, il loro differenziale è
.
- Caratteristica: Una sequenza di differenze che descrive come un differenziale di input si propaga attraverso i cicli della cifratura.
- Probabilità: La probabilità che un dato differenziale di ingresso produca uno specifico differenziale di uscita dopo un certo numero di cicli.
Applicazione al DES
Il DES è stato specificamente progettato per resistere alla crittoanalisi differenziale, che non era pubblicamente nota al momento della sua progettazione ma era compresa da IBM e dalla NSA. Le S-box nel DES sono state scelte con cura per ridurre al minimo la probabilità di caratteristiche differenziali, rendendo più difficile la crittoanalisi differenziale.
Tuttavia, Biham e Shamir hanno dimostrato che il DES non è immune alla crittoanalisi differenziale. Hanno dimostrato che, sebbene l’intero DES a 16 round sia resistente agli attacchi differenziali pratici, le versioni a round ridotto del codice sono vulnerabili. Nello specifico, hanno sviluppato attacchi al DES con meno di 16 round.
Ad esempio, un attacco a un DES da 8 round può essere condotto con una complessità di circa
testi in chiaro scelti, che è significativamente più efficiente di un attacco di forza bruta sull'intero spazio delle chiavi. Per il DES completo a 16 round, la complessità della crittoanalisi differenziale è molto più elevata, rendendola poco pratica con le risorse computazionali disponibili al momento della loro ricerca.
Esempio di Crittoanalisi Differenziale su DES
Per illustrare come funziona la crittoanalisi differenziale, si consideri un esempio semplificato con un DES a ciclo ridotto:
1. Scegli un differenziale: Selezionare un differenziale di ingresso specifico
. Per semplicità, supponiamo
influisce solo su pochi bit.
2. Genera coppie di testo in chiaro: Genera un gran numero di coppie di testo in chiaro
così
.
3. Crittografa coppie di testo in chiaro: Crittografa ogni coppia per ottenere testi cifrati
.
4. Analizza i differenziali di output: Calcolare il differenziale di uscita
per ogni coppia.
5. Identificare le caratteristiche: Identificare modelli nei differenziali di output che suggeriscono caratteristiche specifiche della struttura interna del codice.
6. Dedurre informazioni chiave: Utilizzare le caratteristiche identificate per dedurre informazioni sulle chiavi rotonde e, infine, sulla chiave principale.
Considerazioni pratiche
Sebbene la crittoanalisi differenziale sia uno strumento potente, la sua applicazione pratica al DES richiede risorse computazionali significative e un gran numero di testi in chiaro scelti. Le moderne pratiche crittografiche si sono evolute per utilizzare algoritmi più complessi e sicuri, come l'Advanced Encryption Standard (AES), progettati per resistere non solo alla crittoanalisi differenziale ma anche a un'ampia gamma di altri attacchi crittoanalitici.
La crittoanalisi differenziale è una tecnica consolidata nel campo della crittografia che può essere utilizzata per analizzare e, in alcuni casi, decifrare codici a blocchi come DES. Mentre il DES completo a 16 colpi è resistente agli attacchi differenziali pratici, le versioni a giro ridotto del DES sono vulnerabili. Il design del DES, in particolare delle sue S-box, riflette la consapevolezza dei principi della crittoanalisi differenziale, dimostrando l'importanza di un'attenta progettazione crittografica nel garantire la sicurezza.
Altre domande e risposte recenti riguardanti Data Encryption Standard (DES) - Pianificazione e decrittografia delle chiavi:
- Tra crittoanalisi lineare e differenziale quale è efficiente per rompere il DES?
- Come può la cirpanalisi lineare rompere un crittosistema DES?
- Due input diversi x1, x2 possono produrre lo stesso output y in Data Encryption Standard (DES)?
- La crittoanalisi differenziale è più efficiente della crittoanalisi lineare nel rompere il crittosistema DES?
- In che modo DES è servito da base per i moderni algoritmi di crittografia?
- Perché la lunghezza della chiave in DES è considerata relativamente breve per gli standard odierni?
- Qual è la struttura della rete Feistel e come si collega al DES?
- In che modo il processo di decrittazione in DES differisce dal processo di crittografia?
- Qual è lo scopo della pianificazione delle chiavi nell'algoritmo DES?
- In che modo la comprensione della pianificazione delle chiavi e del processo di decrittazione del DES contribuisce allo studio della crittografia classica e all'evoluzione degli algoritmi di crittografia?
Altre domande e risposte:
- Settore: Cybersecurity
- programma: Fondamenti di crittografia classica EITC/IS/CCF (vai al programma di certificazione)
- Lezione: Crittografia con cifratura a blocchi DES (vai alla lezione correlata)
- Argomento: Data Encryption Standard (DES) - Pianificazione e decrittografia delle chiavi (vai all'argomento correlato)

