CryptoAnalisisServer(CAS) Reti di Calcolatori LS progetto di Carpenè Michele, Busacca Fulvio...
-
Upload
bibiana-rossetti -
Category
Documents
-
view
217 -
download
0
Transcript of CryptoAnalisisServer(CAS) Reti di Calcolatori LS progetto di Carpenè Michele, Busacca Fulvio...
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
PARTE I (Carpenè)
Struttura e funzionamento-bilanciamento
del carico-prima implementazione
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
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
manager replicato su tutti i nodi clienti
Possibili architetture (2)
simmetrico
Possibili architetture (3)
Architettura del Manager
Listener:Allocazione statica
RequestManager,Esecutor:Allocazione dinamica
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
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
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!
È 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)
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.
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
Esempio di esecuzione (1)
Esempio di Esecuzione (2)
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:
il carico viene assegnato interamente a quell’host.
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 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
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:
• mentre il pacchetto dello slave è
semplicemente questo:
La comunicazione
Il risultato
Implementazione
• Implementazione in java
• 20 classi
• Uso della libreria matematica BigInteger
• Per la comunicazione inter-processo: java-RMI
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
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)