Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Hash: la crittografia., Appunti di Informatica

In questo file sono contenute le informazioni di che cos'è "hash" e quali sono le sue caratteristiche

Tipologia: Appunti

2021/2022

Caricato il 18/11/2023

giorgiacipre
giorgiacipre 🇮🇹

9 documenti

1 / 3

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
HASH: CRITTOGRAFIA
COS’E’? È una funzione che trasforma un messaggio o un numero in un elemento chiamato valore
di Hash che ha determinate caratteristiche:
oDeterminismo: ottengo sempre lo stesso valore;
oNon reversibilità: non posso risalire al messaggio iniziale dal valore;
oOmogeneità nel formato: si ottiene un valore simile per qualsiasi cosa io trasformi. Si ha la
stessa tipologia altrimenti darebbe informazioni sul messaggio iniziale.
Una funzione di Hash rileva l’impronta digitale di un testo dalla quale è impossibile risalire al
messaggio iniziale.
oImpronta digitale (digest): si hanno sia le cifre sia le lettere, un esempio è la password cioè
viene salvata l’impronta digitale e non la password.
INTEGRITA’ DEL MESSAGGIO:
Si calcola il digest prima dell’inoltro e il mittente lo trasmette insieme al messaggio per verificare
l’integrità di un documento;
Il destinatario calcola il digest del messaggio e lo confronta con quello del mittente per avere la
certezza che il documento sia inalterato (se il digest del messaggio è uguale a quello del mittente
allora il messaggio non è stato intercettato);
Se 2 chiavi hanno lo stesso record nella stessa posizione (valore di Hash) si dice che coincidono,
questo può capitare siccome il digest ha dimensione limitata.
UTILIZZO:
Accesso diretto ad una tabella: si memorizza in piccoli spazi di memoria in modo sparpagliato
(problemi alla ram);
Sicurezza informatica.
RICERCA DI UN ARCHIVIO:
Si crea una funzione di Hash che fa corrispondere la chiave primaria ad un numero intero e si
posiziona l’elemento corrispondente a tale indirizzo: modo per memorizzare in maniera
sparpagliata.
COLLISIONE TRA CHIAVI:
Come faccio a non perdere dati in questo caso (cioè nel modo in cui si memorizza in maniera
sparpagliata)?
oSoluzione statica: è più semplice. Nella matrice si hanno più posizioni possibili per riga;
oSoluzione dinamica: è preferibile utilizzare tale soluzione siccome permette un risparmio di
memoria. Essa si basa sull’allocazione (così da risparmiare lo spazio della memoria), lo
spazio in memoria si crea durante l’esecuzione del programma e si tratta di un’esecuzione
imprevedibile, e quindi non posso dargli un nome ma devo accedere per indirizzo.
STRUTTURE DINAMICHE: le più importanti sono le liste, i grafi e gli alberi
Sono formate da elementi che sono collegati tra di loro tramite dei puntatori;
pf3

Anteprima parziale del testo

Scarica Hash: la crittografia. e più Appunti in PDF di Informatica solo su Docsity!

HASH: CRITTOGRAFIA

 COS’E’? È una funzione che trasforma un messaggio o un numero in un elemento chiamato valore di Hash che ha determinate caratteristiche: o Determinismo: ottengo sempre lo stesso valore; o Non reversibilità: non posso risalire al messaggio iniziale dal valore; o Omogeneità nel formato: si ottiene un valore simile per qualsiasi cosa io trasformi. Si ha la stessa tipologia altrimenti darebbe informazioni sul messaggio iniziale.  Una funzione di Hash rileva l’ impronta digitale di un testo dalla quale è impossibile risalire al messaggio iniziale. o Impronta digitale (digest) : si hanno sia le cifre sia le lettere, un esempio è la password cioè viene salvata l’impronta digitale e non la password. INTEGRITA’ DEL MESSAGGIO:  Si calcola il digest prima dell’inoltro e il mittente lo trasmette insieme al messaggio per verificare l’integrità di un documento;  Il destinatario calcola il digest del messaggio e lo confronta con quello del mittente per avere la certezza che il documento sia inalterato (se il digest del messaggio è uguale a quello del mittente allora il messaggio non è stato intercettato);  Se 2 chiavi hanno lo stesso record nella stessa posizione (valore di Hash) si dice che coincidono , questo può capitare siccome il digest ha dimensione limitata. UTILIZZO:  Accesso diretto ad una tabella: si memorizza in piccoli spazi di memoria in modo sparpagliato (problemi alla ram);  Sicurezza informatica. RICERCA DI UN ARCHIVIO:  Si crea una funzione di Hash che fa corrispondere la chiave primaria ad un numero intero e si posiziona l’elemento corrispondente a tale indirizzo: modo per memorizzare in maniera sparpagliata. COLLISIONE TRA CHIAVI:  Come faccio a non perdere dati in questo caso (cioè nel modo in cui si memorizza in maniera sparpagliata)? o Soluzione statica: è più semplice. Nella matrice si hanno più posizioni possibili per riga; o Soluzione dinamica : è preferibile utilizzare tale soluzione siccome permette un risparmio di memoria. Essa si basa sull’allocazione (così da risparmiare lo spazio della memoria), lo spazio in memoria si crea durante l’esecuzione del programma e si tratta di un’esecuzione imprevedibile, e quindi non posso dargli un nome ma devo accedere per indirizzo. STRUTTURE DINAMICHE: le più importanti sono le liste, i grafi e gli alberi  Sono formate da elementi che sono collegati tra di loro tramite dei puntatori ;

 Le liste sono delle successioni di elementi, e si dividono in: semplici, doppie e circolari. LISTA SEMPLICE:Nodo è il singolo elemento cioè è un record, è l’elemento fondamentale di memorizzazione. È la parte el puntatore che contiene l’indirizzo del successivo elemento della lista. È la parte con l’informazione che contiene tutti i dati da memorizzare.  Riferimento è l’indirizzo ad un nodo quindi quando si ha un elemento dello stesso tipo si dice che c’è la ricorsione cioè un nodo punta ad un altro nodo.  Per individuare la fine di una lista bisogna trovare un valore per il riferimento con il quale non si acceda ad alcun nodo (in C++ è il valore NULL).  La variabile del puntatore è gamma quadrato.  Puntatore testa è il primo che inizia la lista.  ACCESSO SEQUENZIALE: per accedere ad una lista si deve iniziare dal primo nodo e passare al successivo, non si può tornare indietro.  ARRAY: necessita di uno spazio in memoria, deve essere creato prima e deve essere memorizzato in ordine (differenza: è che invece nella lista i nodi possono essere memorizzati in modo sparso). LISTA DOPPIA:  Ha 2 puntatori per ogni nodo: uno punta al successivo e uno punta al precedente.  Essa può essere percorsa nelle 2 direzioni. Si accede tramite 2 puntatori che sono la testa e la coda.  Il primo nodo è la testa che con il precedente puntatore punta a NULL e con il puntatore successivo punta ad un altro nodo. ALTRE LISTE:Circolare semplice concatenata: l’ultimo elemento punta al primo.  Circolare doppia concatenata: ultimo nodo punta al primo e viene puntato dal nodo precedente. TIPI DI DATO ASTRATTO (TDA):  Sono “contenitori” di informazioni che organizzano i dati dal punto di vista logico;  Si differenziano in base alle operazioni che possono essere eseguite sulle informazioni;  Si stabilisce cosa può fare il TDA: si implementa (= realizzare dal punto di vista fisico) il TDA e quindi si sceglie una struttura dati;  TDA: o PILA è un tipo astratto; STACK è la memoria fisica; o CODA/QUEVE PILA:  TDA ad accesso limitato;  Si può accedere solo dal primo elemento e quindi dalla testa;  Realizzata tramite array o lista semplice concatenata;