Crypto Analisis ServerCAS Reti di Calcolatori LS progetto

  • Slides: 28
Download presentation
Crypto. Analisis. Server(CAS) Reti di Calcolatori LS progetto di Carpenè Michele, Busacca Fulvio Servizio

Crypto. Analisis. Server(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

PARTE I (Carpenè) Struttura e funzionamento-bilanciamento del carico-prima implementazione

PARTE I (Carpenè) Struttura e funzionamento-bilanciamento del carico-prima implementazione

La crittanalisi: 2 parole • La Crittologia è la scienza che studia come difendere

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

Il sistema distribuito per effettuare attacchi con forza bruta: proviamo tutte le combinazioni possibili

Il 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

Possibili architetture (1) server centrale con funzione di manager

Possibili architetture (1) server centrale con funzione di manager

Possibili architetture (2) manager replicato su tutti i nodi clienti

Possibili architetture (2) manager replicato su tutti i nodi clienti

Possibili architetture (3) simmetrico

Possibili architetture (3) simmetrico

Architettura del Manager Listener: Allocazione statica Request. Manager, Esecutor: Allocazione dinamica

Architettura del Manager Listener: Allocazione statica Request. Manager, Esecutor: Allocazione dinamica

Il bilanciamento del carico • carico = coefficiente prestazione macchina + numero chiavi +

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

Caso due processori Ipotesi: caso peggiore I due processi partono insieme

Caso due processori Ipotesi: caso peggiore I due processi partono insieme

Caso generale di N processori : tmono > trandevouztot + tricercalocale tmono > trandevouztot

Caso generale di N processori : tmono > trandevouztot + tricercalocale 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 : tcontrollofile*nchiavi > N/(N-1)*trandevouztot nchiavi > N*trandevouztot /[(N-1)*tcontrollofile] nchiavi

Caso generale di N processori : tcontrollofile*nchiavi > N/(N-1)*trandevouztot nchiavi > N*trandevouztot /[(N-1)*tcontrollofile] nchiavi = 2^L (L lunghezza chiave) L > log 2 (N*trandevouztot /[(N-1)*tcontrollofile]) Lowerbound Attenzione!!! gli host potrebbero essere già carichi!

È interessante notare come nel caso di un numero elevato di processori la funzione

È 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 log 2 (trandevouztot/tcontrollofile)

prova con un file di 16 righe cifrato con una chiave Triplo. Des a

prova con un file di 16 righe cifrato con una chiave Triplo. Des a 168 bit, con tre slave attivi. Usando valori temporali indicativi è risultato in queste condizioni un lower bound minimo di 375468 chiavi. nettamente inferiore a 2^168

Ripartizione del carico per ogni slave viene calcolato il carico corrispondente in base al

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 -Carico. Slave/Carico. Totale) Nkey=0 nessun carico assegnato

Esempio di esecuzione (1)

Esempio di esecuzione (1)

Esempio di Esecuzione (2)

Esempio di Esecuzione (2)

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

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

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

Nel caso in cui sia presente un unico host attivo la soluzione è semplice: il carico viene assegnato interamente a quell’host.

Il client e lo slave (1) • Il processo client si occupa di fornire

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.

Il client e lo slave (2) • Lo slave invia costantemente un messaggio di

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 Gestore. Richiesta che fa fisicamente l’operazione di ricerca • Invia il nome del gestore al Server. Manger

Se non ci sono slave attivi il sistema risponde: Spiacente nessuno slave presente Impossibile

Se non ci sono slave attivi il sistema risponde: Spiacente nessuno slave presente Impossibile effettuare l’operazione

Il client e lo slave (3) • Il formato del pacchetto richiesta è questo:

Il client e lo slave (3) • Il formato del pacchetto richiesta è questo: • mentre il pacchetto dello slave è semplicemente questo:

La comunicazione

La comunicazione

Il risultato

Il risultato

Implementazione • • Implementazione in java 20 classi Uso della libreria matematica Big. Integer

Implementazione • • Implementazione in java 20 classi Uso della libreria matematica Big. Integer Per la comunicazione inter-processo: java. RMI

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

Conclusioni • Dipendenza dello speed-up dalla probabilità di trovare la chiave subito • La sequenza del rande-vouz limita lo speedup del sistema Sviluppi futuri • Prevenzione di fenomeni di congestione • Eventuale gestione dinamica del bilanciamento

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

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)