Breaking DES
Corso di Sicurezza Reti
Dott. Giovanni Ciraolo
Anno Accademico 2003-2004
I sei modi di “rompere” DES
•
•
•
•
•
•
Ricerca esaustiva della chiave
Elaboratore dedicato
Cluster di Computer
Time-Memory Tradeoff
Criptoanalisi Differenziale
Criptoanalisi Lineare
Ricerca esaustiva della chiave
• Supponendo di avere un Blocco C del ciphertext
(64-bits) e di una parziale conoscenza del
contenuto del plaintext è possibile applicare la
funzione di decryption DK[C] su tutto lo spazio
delle chiavi.
• In un elaboratore capace di eseguire una
decryption alla frequenza di 300 Mhz
occorrerebbero all’incirca 7 anni!
Elaboratore dedicato
• Nel 1998 L’EFF (Electronic Frontier Fundation)
costruisce l’elaboratore “Deep Crack”.
• Deep Crack esegue decription alla frequenza di
85 Ghz, ed è capace di trovare la chiave
mediamente in 4 giorni!
• Occorrono 200,000 $ per costruirlo.....(Non sono
poi molti...)
• Dopo questo esperimento la NSA (National
Security Agency) ha dichiarato che DES non è
più sicuro.....
Cluster di computer
• E’ un’alternativa molto meno costosa a “Deep
Crack”, si sfrutta internet e un gran numero di
volontari che donano il tempo di “Idle” dei loro
computer.
• Nel gennaio 1999 la Distribuited.Net usando più
di 100,000 computer collegati ad internet ha
trovato una chiave in 23 giorni.
• Si può usare anche il sistema di calcolo
distribuito “Grid” sviluppato al CERN.
GRID
:
CERN –
Tier 0
Client
Client
Client
Data Server
Tier 1
Client
Data Server
Tier 2/3
Data Server
Tier 2/3
desktop
Client
deskop
Time-Memory Tradeoff
• Cerchiamo di diminuire il tempo della
ricerca esaustiva memorizzando un
dizionario di chiavi.
• Le chiavi vengono ricercate sul dizionario.
• In media è possibile criptoanalizzare ogni
Criptosistema simmetrico con N chiavi in
N2/3 operazioni utilizzano N2/3 word di
memoria.
Time-Memory Tradeoff
• L’algoritmo DES opera su blocchi di plaintext P
di 64-bit e produce blocchi di ciphertext C
usando una chiave a 56-Bit.
C=EK(P)
• Sia P0 un blocco di plaintext fissato definiamo
f(K)=R[EK(P)]
Dove R è una qualsiasi riduzione da 64-bit a 56bit
Costruzione della funzione f(k)
La funzione f(K)
• Si calcola facilmente.
• La sua complessità è equivalente alla
funzione di criptatura di DES.
• Calcolare K da f(K) è molto difficile, è un
problema equivalente alla Criptoanalisi di
DES.
• Può essere considerata una funzione
One-Way.
Precomputazione: Costruzione
della Matrice delle immagini di f.
• Scegliamo uniformemente nello spazio
delle chiavi {1,...,256} una distribuzione
casuale di m punti di partenza:
SP1,SP2,...,SPm
• Poniamo Xi0=SPi, con 1≤i≤m
• Calcoliamo Xij=f(Xi,j-1), con 1≤i≤t
• Chiamiamo EPi = ft(SPi) i punti di arrivo.
Precomputazione:
Matrice delle Immagini di f
Precomputazione:
Riduzione della memoria e
memorizzazione della matrice
•
•
Un metodo per ridurre l’occupazione
della memoria è quella di memorizzare
solamente le coppie:
{EPi,SPi}, con i=1,..m
Le coppie sono memorizzate in ordine
crescente rispetto ai punti di arrivo.
Computazione:
Ricerca della chiave
• Supponiamo di conoscere un plaintext P0 con il
relativo ciphertex C0 criptato con una chiave
sconosciuta K.
• C0=EK(P0)
• Applichiamo la funzione di riduzione R
• Y1=R(C0)=f(K)
• E’ possibile verificare rapidamente se Y1 è un
EPi.
• Nota: Se Y1 non è EPi la chiave K non è nella
colonna precedente a quella degli EPi.
Computazione:
Ricerca della Chiave
• Se Y1=EPi
1. K=Xi,j-1 (K è nella colonna precendente al
punto di arrivo) , calcoliamo Xi,j-1 e
controlliamo se decifra C0 in P0.
2. EPi ha più di una immagine
inversa.(Falso allarme)
Computazione: Ricerca della
Chiave
•
Se Y1 non è un punto di arrivo o è un falso
allarme calcoliamo Y2=f(Y1) se:
1. Y2=EPi e controlliamo se Xi,t-2 decifra C0 in P0.
2. Altrimenti la chiave non è nella t-2-esima colonna e
calcoliamo Y3=f(Y2)
•
Analogamente calcoliamo Y4=f(Y3),.., Yt=f(Yt-1)
per controllare rispettivamente che la chiave
sia nella colonna t-4,.....,0
Stima del Successo
• Se tutti gli mt elementi che vanno dalla colonna 0
alla colonna t-1 sono diversi e se K è scelta
uniformemente dall’insieme di tutti i possibili valori
la probabilita di successo P(S) è:
mt
P ( S )  56
2
Ecco un bel Teorema
Teorema: Se f:{1,..,256}→ {1,..,256} è una funzione
casuale e K è scelta uniformenete in {1,..,256}
allora la probabilità di successo è limitato dalla
sequente relazione:
 (2  it ) 
1

P( S )  56  
56
2 i 1 j  2

m
t 1
56
j 1
Dimostrazione: La dimostrazione è strettamemente
correlata al problema del compleanno.
Note
• Il teorema dimostra che non guadagnamo
molto se incrementiamo m o t raggiunta la
relazione mt2=256
• Quando mt2=256 la probabilità di
successo è P(S)≈0.75
La funzione di riduzione R:
“Il Diavolo si annidia nei particolari”
• La scelta della funzione di riduzione condiziona
pesantemente le prestazioni dell’algoritmo.
• Ad ogni R è associata una matrice delle
immagini.
• Lo spazio delle scelte di R è (64!)/(8!)=3x1084.
• Fortunatamente DES può essere considerato un
buon generatore pseudocasuale di numeri,
perciò la funzione R non varia molto la struttura
ciclica della generazione dei numeri.
I falsi allarmi
• Teorema: Il numero atteso E(F) dei falsi allarmi
per matrice è limitato dalla seguente relazione:
mt (t  1)
E(F ) 
57
2
Nota: Quando occorre un falso allarme, sono
necessarie al massimo t operazioni per scartarlo.
Se mt2=256 il contributo dato dal controllo sui falsi
allarmi incrementa al massimo del 50% il tempo di
computazione.
Una piccola prova
• Utilizzando un DES con chiave ridotta a
16-bit e m=t=16 e utilizzando 30 differenti
funzioni di riduzione abbiamo ottenuto una
probabilità di successo pari a al 10% con
un tempo di 3-4 ore.
• I tempi possono essere facilmente ridotti
se utilizziamo un sistema distribuito
(...purtroppo sono stato fermato....).
Scarica

Forzare DES