Copyright © 1986 Università di Firenze.All rights reserved.
Free license available.
Revisori: Franco Pirri e Maurizio Lunghi
Una funzione one-way hash trasforma un testo normale di lunghezza arbitraria in una stringa di lunghezza relativamente limitata. Questa stringa rappresenta "un'impronta digitale" unica del messaggio e viene spesso definito valore di hash o checksum crittografico.
Di nessun valore di hash di lunghezza finita si può avere la certezza che provenga da un singolo messaggio. Inoltre dato un valore di hash, dovrebbe essere impossibile risalire al suo testo originale (se ci si riuscisse la funzione non sarebbe più "one-way").
Per una dimostrazione forniamo 2 valori di hash, provenienti da input molto diversi in un sistema UNIX, ottenuti tramite l'algoritmo MD5 di cui parleremo tra poco, che estrae da input di qualunque dimensione valori di hash di 128 bits che possono essere rappresentati con 16 cifre esadecimali:
% echo "a" ¦ md5
valore di hash corrispondente: 60B725F10C9C85C70D97880DFE8191B3
% cat congressional-minutes.txt ¦ md5
valore di hash corrispondente: EDED6F6C520DEB812BA7154D093AD43
Le funzioni one-way hash svolgono due funzioni molto importanti nella crittografia:
MD2 (Message Digest 2), inventato da Ron Rivest della RSA Data Security, è una funzione nata per essere utilizzata con la Privacy Enhaced Mail (PEM)(Posta con privacy incrementata).
Inventato da Ron Rivest della RSA Data Security, MD4 crea anch'esso, come il precedente, valori di hash di 128 bits ma i calcoli sono ottimizzati per i registri a 32 bits come quelli che si possono trovare nella famiglia dei processori Intel 80x86. Sicuramente più veloce di MD2, MD4 richiede PAD (aggiunta di bit) a multipli di 512 bits. Inoltre il padding comprende sempre un valore di 64 bits che indica la lunghezza del messaggio che non ha subito il PAD. In questo modo MD4 è più sicuro del suo antecedente perché se già è difficile produrre due messaggi che abbiano stesso valore di hash di 128 bits, sarà ancora più difficile fare lo stesso con due messaggi che abbiano la stessa lunghezza con modulo 2^64.
MD5, come i precedenti, è stato ideato da Ron Rivest della RSA Data Security. E' nato per sostituire MD4 che sta per essere violato!
SHA (Secure Hash Algorithm) è un algoritmo hash prodotto dal National Istitute of Standard and Tecnology (NIST) e della National Security Agency (NSA) del governo degli Stati Uniti.
Tiger è un nuovo algoritmo sviluppato da Anderson e Biham, disponibile all'indirizzo: ftp://ftp.funet.fi:/pub/crypt/hash/tiger.
Produce un valore di hash di 128 bits e richiede come input multipli di 16 byte. MD2 esegue il PAD (cioè aggiunge i bit mancanti) ai messaggi d'ingresso che non hanno la lunghezza integrale.
Questo algoritmo è stato violato dalla crittoanalisi quindi è, ovviamente, sconsigliato l'uso.
Un'implementazione è disponibile all'indirizzo: ftp://ftp.funet.fi:/pub/crypt/hash/mds. Funzioni hash
MD4
Funzioni hash
MD5
Non cambia molto sulla struttura, è solo un'estensione del suddetto anche se un po' più lento.
MD5 è disponibile liberamente a: ftp://ftp.funet.fi:/pub/crypt/hash/mds/md5. Funzioni hash
SHA
Molto simile a MD4 produce valori di 160 bits a partire da stringhe di lunghezza variabile. E' ritenuto abbastanza sicuro ed è relativamente nuovo.
Disponibile a: ftp://ftp.funet.fi:/pub/crypt/hash/sha. Funzioni hash
TIGER
Bibliografia e sorgenti d'informazione
Explore the TELEMAT Site !!!
Ultimo aggiornamento: 24/1/97