CryptoAnalisisServer(CAS) Reti di Calcolatori LS progetto di Carpenè Michele, Busacca Fulvio...

28
CryptoAnalisisServer(C AS) Reti di Calcolatori LS progetto di Carpenè Michele, Busacca Fulvio Servizio distribuito basato sul calcolo parallelo per operazioni di crittanalisi A.A. 2004/2005

Transcript of CryptoAnalisisServer(CAS) Reti di Calcolatori LS progetto di Carpenè Michele, Busacca Fulvio...

Page 1: CryptoAnalisisServer(CAS) Reti di Calcolatori LS progetto di Carpenè Michele, Busacca Fulvio Servizio distribuito basato sul calcolo parallelo per operazioni.

CryptoAnalisisServer(CAS)Reti di Calcolatori LS

progetto di Carpenè Michele, Busacca Fulvio

Servizio distribuito basato sul calcolo parallelo per operazioni di crittanalisi

 A.A. 2004/2005

Page 2: CryptoAnalisisServer(CAS) Reti di Calcolatori LS progetto di Carpenè Michele, Busacca Fulvio Servizio distribuito basato sul calcolo parallelo per operazioni.

PARTE I (Carpenè)

Struttura e funzionamento-bilanciamento

del carico-prima implementazione

Page 3: CryptoAnalisisServer(CAS) Reti di Calcolatori LS progetto di Carpenè Michele, Busacca Fulvio Servizio distribuito basato sul calcolo parallelo per operazioni.

La crittanalisi: 2 parole

• La Crittologia è la scienza che studia come difendere l’informazione da attacchi intenzionali

• due distinte discipline: • Crittografia: gli algoritmi e i protocolli che

occorrono a fronteggiare gli attacchi degli intrusi

• Crittanalisi: valuta la robustezza esaminando come, in quanto tempo e con quali risorse è possibile rompere le difese

Page 4: CryptoAnalisisServer(CAS) Reti di Calcolatori LS progetto di Carpenè Michele, Busacca Fulvio Servizio distribuito basato sul calcolo parallelo per operazioni.

Il sistema

sistema distribuito per effettuare attacchi con forza bruta:

proviamo tutte le combinazioni possibili di chiave per giungere comunque a una soluzione del problema, anche in un periodo di tempo lungo.

Obiettivi:

comprendere come il calcolo parallelo sia uno strumento efficace per risolvere problemi di calcolo in tempi ragionevoli e cimentarci con una caso pratico  

Page 5: CryptoAnalisisServer(CAS) Reti di Calcolatori LS progetto di Carpenè Michele, Busacca Fulvio Servizio distribuito basato sul calcolo parallelo per operazioni.

Possibili architetture (1)

server centrale con funzione di manager

Page 6: CryptoAnalisisServer(CAS) Reti di Calcolatori LS progetto di Carpenè Michele, Busacca Fulvio Servizio distribuito basato sul calcolo parallelo per operazioni.

manager replicato su tutti i nodi clienti

Possibili architetture (2)

Page 7: CryptoAnalisisServer(CAS) Reti di Calcolatori LS progetto di Carpenè Michele, Busacca Fulvio Servizio distribuito basato sul calcolo parallelo per operazioni.

simmetrico

Possibili architetture (3)

Page 8: CryptoAnalisisServer(CAS) Reti di Calcolatori LS progetto di Carpenè Michele, Busacca Fulvio Servizio distribuito basato sul calcolo parallelo per operazioni.

Architettura del Manager

Listener:Allocazione statica

RequestManager,Esecutor:Allocazione dinamica

Page 9: CryptoAnalisisServer(CAS) Reti di Calcolatori LS progetto di Carpenè Michele, Busacca Fulvio Servizio distribuito basato sul calcolo parallelo per operazioni.

Il bilanciamento del carico

• carico = coefficiente prestazione macchina + numero chiavi + lunghezza file

•Se aumentiamo i processori l’efficienza tende a zero

Necessità di stimare un lowerbound

Page 10: CryptoAnalisisServer(CAS) Reti di Calcolatori LS progetto di Carpenè Michele, Busacca Fulvio Servizio distribuito basato sul calcolo parallelo per operazioni.

Caso due processori

Ipotesi: caso peggiore I due processi partono insieme

Page 11: CryptoAnalisisServer(CAS) Reti di Calcolatori LS progetto di Carpenè Michele, Busacca Fulvio Servizio distribuito basato sul calcolo parallelo per operazioni.

tmono > trandevouztot + tmono /N

tmono *(N-1)/N > trandevouztot

tmono > N/(N-1)*trandevouztot

Dove:

trandevouztot = trandevouzcliente +tloadbalancing +N*(trandevouzhost+tallocazioneprocessi)

Caso generale di N processori : 

tmono > trandevouztot + tricercalocale

Page 12: CryptoAnalisisServer(CAS) Reti di Calcolatori LS progetto di Carpenè Michele, Busacca Fulvio Servizio distribuito basato sul calcolo parallelo per operazioni.

Caso generale di N processori : 

tcontrollofile*nchiavi > N/(N-1)*trandevouztot

nchiavi > N*trandevouztot /[(N-1)*tcontrollofile]

L > log2 (N*trandevouztot /[(N-1)*tcontrollofile]) Lowerbound

nchiavi = 2^L (L lunghezza chiave)

Attenzione!!! gli host potrebbero essere già carichi!

Page 13: CryptoAnalisisServer(CAS) Reti di Calcolatori LS progetto di Carpenè Michele, Busacca Fulvio Servizio distribuito basato sul calcolo parallelo per operazioni.

È interessante notare come nel caso di un numero elevato di processori la funzione di lower-bound possa essere approssimata:

Infatti per N tendente a un numero elevato diventa

nchiavi > trandevouztot /tcontrollofile

e quindi:

Lowerbound log2 (trandevouztot/tcontrollofile)

Page 14: CryptoAnalisisServer(CAS) Reti di Calcolatori LS progetto di Carpenè Michele, Busacca Fulvio Servizio distribuito basato sul calcolo parallelo per operazioni.

prova con un file di 16 righe cifrato con una chiave TriploDes a 168 bit, con tre

slave attivi.

nettamente inferiore a 2^168

Usando valori temporali indicativi è

risultato in queste condizioni un lower bound minimo di 375468 chiavi.

Page 15: CryptoAnalisisServer(CAS) Reti di Calcolatori LS progetto di Carpenè Michele, Busacca Fulvio Servizio distribuito basato sul calcolo parallelo per operazioni.

Ripartizione del carico

per ogni slave viene calcolato il carico corrispondente in base al carico di cui è già gravato e in base al carico totale.

Per ognuno di essi è:

 NKey = (K/N)*(1-CaricoSlave/CaricoTotale)

Nkey=0 nessun carico assegnato

Page 16: CryptoAnalisisServer(CAS) Reti di Calcolatori LS progetto di Carpenè Michele, Busacca Fulvio Servizio distribuito basato sul calcolo parallelo per operazioni.

Esempio di esecuzione (1)

Page 17: CryptoAnalisisServer(CAS) Reti di Calcolatori LS progetto di Carpenè Michele, Busacca Fulvio Servizio distribuito basato sul calcolo parallelo per operazioni.

Esempio di Esecuzione (2)

Page 18: CryptoAnalisisServer(CAS) Reti di Calcolatori LS progetto di Carpenè Michele, Busacca Fulvio Servizio distribuito basato sul calcolo parallelo per operazioni.

E se il carico totale è inferiore al lwb???

• si è previsto di assegnare ugualmente il compito ripartendolo su un sottoinsieme degli host attivi.

• Necessarie due procedure:

• La prima ricalcola il lwb

• La seconda determina le n macchine meno cariche

Page 19: CryptoAnalisisServer(CAS) Reti di Calcolatori LS progetto di Carpenè Michele, Busacca Fulvio Servizio distribuito basato sul calcolo parallelo per operazioni.

Nel caso in cui sia presente un unico host attivo la soluzione è semplice:

il carico viene assegnato interamente a quell’host.

Page 20: CryptoAnalisisServer(CAS) Reti di Calcolatori LS progetto di Carpenè Michele, Busacca Fulvio Servizio distribuito basato sul calcolo parallelo per operazioni.

Il client e lo slave (1)

• Il processo client si occupa di fornire una semplice interfaccia grafica che permetta all’utente di inserire i dati (nome del file, lunghezza della chiave e algoritmo di codifica),

• quindi il client invia la richiesta al processo Listener che si occuperà di servirla e rimane in attesa del risultato.

Page 21: CryptoAnalisisServer(CAS) Reti di Calcolatori LS progetto di Carpenè Michele, Busacca Fulvio Servizio distribuito basato sul calcolo parallelo per operazioni.

Il client e lo slave (2)

• Lo slave invia costantemente un messaggio di disponibilità ad effettuare il servizio al Listener e si occupa di istanziare un oggetto GestoreRichiesta che fa fisicamente l’operazione di ricerca

• Invia il nome del gestore al ServerManger

Page 22: CryptoAnalisisServer(CAS) Reti di Calcolatori LS progetto di Carpenè Michele, Busacca Fulvio Servizio distribuito basato sul calcolo parallelo per operazioni.

Se non ci sono slave attivi il sistema risponde:

Spiacente nessuno slave presente

Impossibile effettuare l’operazione

Page 23: CryptoAnalisisServer(CAS) Reti di Calcolatori LS progetto di Carpenè Michele, Busacca Fulvio Servizio distribuito basato sul calcolo parallelo per operazioni.

Il client e lo slave (3)

• Il formato del pacchetto richiesta è questo:

 • mentre il pacchetto dello slave è

semplicemente questo:

Page 24: CryptoAnalisisServer(CAS) Reti di Calcolatori LS progetto di Carpenè Michele, Busacca Fulvio Servizio distribuito basato sul calcolo parallelo per operazioni.

La comunicazione

Page 25: CryptoAnalisisServer(CAS) Reti di Calcolatori LS progetto di Carpenè Michele, Busacca Fulvio Servizio distribuito basato sul calcolo parallelo per operazioni.

Il risultato

Page 26: CryptoAnalisisServer(CAS) Reti di Calcolatori LS progetto di Carpenè Michele, Busacca Fulvio Servizio distribuito basato sul calcolo parallelo per operazioni.

Implementazione

• Implementazione in java

• 20 classi

• Uso della libreria matematica BigInteger

• Per la comunicazione inter-processo: java-RMI

Page 27: CryptoAnalisisServer(CAS) Reti di Calcolatori LS progetto di Carpenè Michele, Busacca Fulvio Servizio distribuito basato sul calcolo parallelo per operazioni.

Conclusioni

• Dipendenza dello speed-up dalla probabilità di trovare la chiave subito

• La sequenza del rande-vouz limita lo speed-up del sistema

Sviluppi futuri

• Prevenzione di fenomeni di congestione

• Eventuale gestione dinamica del bilanciamento

Page 28: CryptoAnalisisServer(CAS) Reti di Calcolatori LS progetto di Carpenè Michele, Busacca Fulvio Servizio distribuito basato sul calcolo parallelo per operazioni.

Bibliografia

• [1] R.Laschi, R.Montanari: Appunti di Tecnologie per la sicurezza (Progetto Leonardo Bologna).

• [2] Dispense di reti di calcolatori LA (Docente: Antonio Corradi, università di Bologna).

• [3] Dispense di reti di calcolatori LS (Antonio Corradi)