Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoBibiana Rossetti Modificato 10 anni fa
1
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
2
PARTE I (Carpenè) Struttura e funzionamento-bilanciamento del carico-prima implementazione
3
La crittanalisi: 2 parole La Crittologia è la scienza che studia come difendere linformazione 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
4
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
5
Possibili architetture (1) server centrale con funzione di manager
6
manager replicato su tutti i nodi clienti Possibili architetture (2)
7
simmetrico Possibili architetture (3)
8
Architettura del Manager Listener: Allocazione statica RequestManager, Esecutor: Allocazione dinamica
9
Il bilanciamento del carico carico = coefficiente prestazione macchina + numero chiavi + lunghezza file Se aumentiamo i processori lefficienza tende a zero Necessità di stimare un lowerbound
10
Caso due processori Ipotesi: caso peggioreI due processi partono insieme
11
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
12
Caso generale di N processori : tcontrollofile*nchiavi > N/(N-1)*trandevouztot nchiavi > N*trandevouztot /[(N-1)*tcontrollofile] L > log 2 (N*trandevouztot /[(N-1)*tcontrollofile]) Lowerbound nchiavi = 2^L (L lunghezza chiave) Attenzione!!! gli host potrebbero essere già carichi!
13
È 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)
14
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.
15
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
16
Esempio di esecuzione (1)
17
Esempio di Esecuzione (2)
18
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
19
Nel caso in cui sia presente un unico host attivo la soluzione è semplice: il carico viene assegnato interamente a quellhost.
20
Il client e lo slave (1) Il processo client si occupa di fornire una semplice interfaccia grafica che permetta allutente 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.
21
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 loperazione di ricerca Invia il nome del gestore al ServerManger
22
Se non ci sono slave attivi il sistema risponde: Spiacente nessuno slave presente Impossibile effettuare loperazione
23
Il client e lo slave (3) Il formato del pacchetto richiesta è questo: mentre il pacchetto dello slave è semplicemente questo:
24
La comunicazione
25
Il risultato
26
Implementazione Implementazione in java 20 classi Uso della libreria matematica BigInteger Per la comunicazione inter-processo: java- RMI
27
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
28
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)
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.