Crittografia/Funzioni Hash

Wikibooks, manuali e libri di testo liberi.
Jump to navigation Jump to search
Copertina

Parte I: Introduzione alla Crittografia

  1. Introduzione alla crittografia
  2. Storia della crittografia
  3. Concetti fondamentali

Parte II: Progettare cifrari

  1. Principi base nella progettazione
  2. Piccoli segreti nascondono segreti più grandi
  3. algoritmi aperti e il valore del Peer-Review
  4. Pensa come un crittoanalista
  5. La matematica che devi conoscere
  6. La sicurezza informatica non è solo la cifratura
  7. Un codice non violato non è necessariamente non violabile

Parte III: Violare cifrature

  1. I principi base nel violare cifrari
  2. Debolezze
  3. Attacchi
  4. Come furono violate le cifrature storiche

Parte IV: Usare cifrature

  1. Applicazioni della crittografia
  2. Cifrature classiche
  3. Cifrature contemporanee
  4. Protocolli

Parte V: La crittografia e la società

  1. La natura mutevole dell'uso della crittografia
  2. Crittografia, governi e leggi
  3. Aspettative dell'utente normale
  4. Snake Oil

Parte VI: Miscellanea

  1. Possibilità future
  2. Glossario dei termini
  3. Letture addizionali
  4. Appendice A: background matematico

Le funzioni hash sono funzioni matematiche ( o procedure ben definite ) in grado di trasformare un dato in input ( di misura variabile ) in un dato di output di misura fissata. I valori ritornati dalle funzioni hash sono chiamati: hash value, hash code, hash result.

Utilizzi comuni di questo tipo di funzioni sono: verifica di integrità dei dati ( utilizzo di funzioni hash per il controllo della consistenza dei dati dopo la trasmissione degli stessi ), utilizzo come indice di lookup nei database, etc.

Poiché la trasformazione dei dati di input in quelli di output non è 1 a 1, ma bensì n a 1, è possibile che due chiavi di input siano mappate sulla stessa chiave di output. In molte applicazioni, è desiderabile minimizzare il numero di queste collisioni. Questo è particolarmente vero in crittografia. Sebbene esistano varie implementazioni di funzioni hash ( SHA1, SHA2, MD5, etc ), la progettazione di un'ottima funzione di hash è tuttora un topic attivo nel mondo della ricerca.

Funzionamento[modifica]

Ci sono molti tipi di hash: tra i più importanti ricordiamo lo SHA1 e l'MD5.

Il funzionamento è semplice. Un hash deve essere costruito di modo che qualunque sia la dimensione dei dati in input, la dimensione dell'output sia sempre la stessa. Inoltre non ci devono essere due contenuti che possano dar luogo allo stesso hash (in questo caso usarlo sarebbe inutile).

Una proprietà importante[modifica]

Non c'è nessuna corrispondenza tra il testo in chiaro e l'hash. Non c'è quindi nessun modo a parte l'Attacco di forza bruta per ritornare al testo originario.

Questa pagina è uno stub Questo modulo è solo un abbozzo. Contribuisci a migliorarlo secondo le convenzioni di Wikibooks