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

Upload: bibiana-rossetti

Post on 01-May-2015

217 views

Category:

Documents


0 download

TRANSCRIPT

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)