6 resultados para Hash
em AMS Tesi di Laurea - Alm@DL - Università di Bologna
Resumo:
Descrizione delle funzioni hash SHA, in particolare SHA-3, e loro sicurezza in campo crittografico.
Resumo:
La firma digitale è uno degli sviluppi più importanti della crittografia a chiave pubblica, che permette di implementarne le funzionalità di sicurezza. La crittografia a chiave pubblica, introdotta nel 1976 da Diffie ed Hellman, è stata l'unica grande rivoluzione nella storia della crittografia. Si distacca in modo radicale da ciò che l'ha preceduta, sia perché i suoi algoritmi si basano su funzioni matematiche e non su operazioni di sostituzione e permutazione, ma sopratutto perché è asimmetrica: prevede l'uso di due chiavi distinte (mentre nelle crittografia simmetrica si usa una sola chiave condivisa tra le parti). In particolare, le funzioni matematiche su cui si basa tale crittografia sono funzioni ben note nella Teoria dei Numeri: ad esempio fattorizzazione, calcolo del logaritmo discreto. La loro importanza deriva dal fatto che si ritiene che siano 'computazionalmente intrattabili' da calcolare. Dei vari schemi per la firma digitale basati sulla crittografia a chiave pubblica, si è scelto di studiare quello proposto dal NIST (National Institute of Standard and Technology): il Digital Signature Standard (DSS), spesso indicato come DSA (Digital Signature Algorithm) dal nome dell'algoritmo che utilizza. Il presente lavoro è strutturato in tre capitoli. Nel Capitolo 1 viene introdotto il concetto di logaritmo discreto (centrale nell'algoritmo DSA) e vengono mostrati alcuni algoritmi per calcolarlo. Nel Capitolo 2, dopo una panoramica sulla crittografia a chiave pubblica, si dà una definizione di firma digitale e delle sue caratteristiche. Chiude il capitolo una spiegazione di un importante strumento utilizzato negli algoritmi di firma digitale: le funzioni hash. Nel Capitolo 3, infine, si analizza nel dettaglio il DSA nelle tre fasi che lo costituiscono (inizializzazione, generazione, verifica), mostrando come il suo funzionamento e la sua sicurezza derivino dai concetti precedentemente illustrati.
Resumo:
Uno dei principali settori di studio nell’ambito della visione artificiale riguarda lo sviluppo e la continua ricerca di tecniche e metodologie atte alla ricostruzione di ambienti 3D. Una di queste è il Kinect Fusion, la quale utilizza il dispositivo Kinect per catturare ed elaborare informazioni provenienti da mappe di profondità relative a una particolare scena, per creare un modello 3D dell’ambiente individuato dal sensore. Il funzionamento generale del sistema “Kinect Fusion” consiste nella ricostruzione di superfici dense attraverso l’integrazione delle informazioni di profondità dei vari frame all’interno di un cubo virtuale, che a sua volta viene partizionato in piccoli volumi denominati voxel, e che rappresenta il volume della scena che si intende ricostruire. Per ognuno di tali voxel viene memorizzata la distanza (TSDF) rispetto alla superficie più vicina. Durante lo svolgimento di questo lavoro di tesi ci si è concentrati innanzitutto nell’analisi dell’algoritmo Voxel Hashing, una tecnica che mira a rendere l'algoritmo Kinect Fusion scalabile, attraverso una migliore gestione della struttura dati dei voxel allocando questi ultimi all'interno di una tabella di hash solo se strettamente necessario (TSDF inferiore a una soglia). In una prima fase del progetto si è quindi studiato in dettaglio il funzionamento di suddetta tecnica, fino a giungere alla fase della sua implementazione all’interno di un framework di ricostruzione 3D, basato su Kinect Fusion; si è quindi reso il sistema realizzato più robusto tramite l’applicazione di diverse migliorie. In una fase successiva sono stati effettuati test quantitativi e qualitativi per valutarne l'efficienza e la robustezza. Nella parte finale del progetto sono stati delineati i possibili sviluppi di future applicazioni.
Resumo:
L’Intelligenza Artificiale (IA), sin dalla sua introduzione, si è occupata dei giochi, ponendo l’attenzione a quelli detti a informazione perfetta e a somma zero e sequenziali (Tris, Scacchi e Forza4). Dalla Teoria dei Giochi è derivato il modello Minimax, che sfrutta l'albero di gioco per effettuare una ricerca in profondità allo scopo di minimizzare la massima perdita possibile per individuare la mossa migliore da giocare. Tuttavia, il limite di tale algoritmo risiede nel tempo necessario al calcolo (per alberi profondi e di grandi dimensioni) che, in alcuni casi, può essere considerevole. Per mitigare tale problema, è stato introdotta la proposta Alpha-Beta, che attua delle potature sull’albero di gioco grazie l’introduzione di due nuove variabili dette, appunto, alpha e beta. Tale approccio è stato ulteriormente migliorato ricorrendo all’utilizzo del concetto di funzione euristica e introducendo un limite di profondità al quale fermare la ricorsione del modello Alpha-Beta. Tale limite, tuttavia, determina il problema dell’effetto orizzonte, legato al fatto che fermarsi a una profondità intermedia dell’albero può portare l’algoritmo a non vedere delle alcune mosse migliori che possono situarsi nel sotto albero del nodo a cui si ferma la ricerca, appunto l’orizzonte. Ulteriori accorgimenti, come l'algoritmo ad approfondimento iterativo (Iterative Deepening) e il salvataggio degli stati di gioco in una tabella hash, possono ridurre in modo significativo il tempo di calcolo. Partendo da questi studi, sono stati sviluppati degli agenti software per ConnectX, un gioco sviluppato in Java a somma zero e a informazione perfetta come Forza4. Le implementazioni sono state testate su 39 diverse configurazioni di gioco, dimostrando che l'agente PlayerSoft risulta il più ottimale e che l'implementazione della funzione euristica rappresenta un buon compromesso tra complessità di calcolo e risultato atteso.
Resumo:
I sistemi decentralizzati hanno permesso agli utenti di condividere informazioni senza la presenza di un intermediario centralizzato che possiede la sovranità sui dati scambiati, rischi di sicurezza e la possibilità di colli di bottiglia. Tuttavia, sono rari i sistemi pratici per il recupero delle informazioni salvate su di essi che non includano una componente centralizzata. In questo lavoro di tesi viene presentato lo sviluppo di un'applicazione il cui scopo è quello di consentire agli utenti di caricare immagini in un'architettura totalmente decentralizzata, grazie ai Decentralized File Storage e alla successiva ricerca e recupero di tali oggetti attraverso una Distributed Hash Table (DHT) in cui sono memorizzati i necessari Content IDentifiers (CID).\\ L'obiettivo principale è stato quello di trovare una migliore allocazione delle immagini all'interno del DHT attraverso l'uso dell'International Standard Content Code (ISCC), ovvero uno standard ISO che, attraverso funzioni hash content-driven, locality-sensitive e similarity-preserving, assegna i CID IPFS delle immagini ai nodi del DHT in modo efficiente, per ridurre il più possibile i salti tra i nodi e recuperare immagini coerenti con la query eseguita. Verranno, poi, analizzati i risultati ottenuti dall'allocazione dei CID delle immagini nei nodi mettendo a confronto ISCC e hash crittografico SHA-256, per verificare se ISCC rappresenti meglio la somiglianza tra le immagini allocando le immagini simili in nodi vicini tra loro.