Crypto Analisis ServerCAS Reti di Calcolatori LS progetto
- Slides: 28
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
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 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 (2) manager replicato su tutti i nodi clienti
Possibili architetture (3) simmetrico
Architettura del Manager Listener: Allocazione statica Request. Manager, 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
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 = 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 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 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 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 (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 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 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 Big. Integer 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 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 Leonardo Bologna). • [2] Dispense di reti di calcolatori LA (Docente: Antonio Corradi, università di Bologna). • [3] Dispense di reti di calcolatori LS (Antonio Corradi)
- Reti dei calcolatori
- Reti di calcolatori e internet
- Reti di calcolatori polito
- Reti di calcolatori
- Reti di calcolatori polito
- Reti dei calcolatori
- Reti di calcolatori unibo
- Calcolatori elettronici
- Monitoring troubleshooting apparati reti
- Progettazione reti lan
- Italgasreti
- Reti som
- Le reti informatiche slide
- Scott vogler
- Reti sequenziali sincrone
- Reti
- Reti neurali bioinformatica
- Rete di petri
- Nomad history
- 800*76
- Digital pink slip
- Propchain crypto
- Crypto des
- Secretkey
- Asn supply chain
- Mmaps crypto
- Window.crypto.subtle.generatekey
- Safeastro crypto
- Crypto