Newsgroup: it.comp.sicurezza.crittografia
Titolo: Hash

Ho letto che gli algoritmi per creare l'hash di un file possono essere 
diversi (quindi usando due algoritmi diversi si creano due hash diversi).
Ho scaricato il programma HashSlash che mi fa spuntare diverse caselle 
delle quali ignoro il significato (MD5, SHA1, SHA256, ecc), di default 
sono spuntate MD5 e SHA1.
Ciò premesso vorrei alcuni chiarimenti:
1) esiste uno standard? Cioè, se indico un hash senza dire null'altro 
chi deve verificare il file può verificarne l'hash?
2) se la risposta alla domanda precedente è no cosa dovrei a chi deve 
verificare il file?
3) quali opzioni devo spuntare nel programma HashSlash (o in un 
eventuale altro programam freeware da voi condigliato)?


Dopo aver usato il programma le cose appaiono leggermente più chiare...
E' corretto scrivere "Il file avente HASH MD5 
“4089009b2ed68b273c0f0807c3b49a60” è..."?
 

 “4089009b2ed68b273c0f0807c3b49a60” è..."?
 
No. Esistono infiniti files che hanno il medesimo hash (si chiamano 
collisioni), quindi la frase di cui sopra non è matematicamente corretta.
 
Dovrebbe essere:
       Il file avente HASH MD5 "4089009b2ed68b273c0f0807c3b49a60"
       corrisponde al file xxxx con una probabilità di X
 
Oppure se vuoi essere deterministico:
       Il file xxxx ha HASH MD5 "4089009b2ed68b273c0f0807c3b49a60"
 
La probabilità di collisioni si abbassa vertiginosamente includendo 
altri elementi, come 
p.es
. la dimensione esatta del file.
Alternativamente puoi calcolare due hash diversi, usando due funzioni 
diverse (possibilmente non della stessa "famiglia").
 
Disponendo di hash MD5, hash SHA1 e dimensione del file la probabilità 
di una collisione diventa talmente piccola che si può liberamente 
considerare nulla.
 
Ti ricordo comunque che MD5 non è più ritenuto un algoritmo di hashing 
affidabile per attività che comportino elevata sicurezza o per attività 
forense (che penso sia il tuo caso), e che anche SHA1 è fortemente 
sconsigliato.
Quindi o li utilizzi entrambi, nel qual caso compensi le carenze dei 
singoli, oppure utilizzi un algoritmo più affidabile come SHA256, SHA384 
o SHA512.
 
 
-- 
Flavio Visentin
 
Scientists discovered what's wrong with the female brain: on the left
side, there's nothing right, and on the right side, there's nothing left

 o SHA512.
 
Ho usato l'MD5 perché mi pare il più diffuso. Non vorrei usare un 
algoritmo strano difficile da verificare per un non esperto. L'MD5, per 
quello che ho visto, è supportato da tutti i programmi.
 


GnuPG 4096 RSAv4 key: \_____________________________________________
UID:0xE361F839--Fingerprint:9516BCF66B8F12E0C3C3154C61788B6DE361F839

 ipotesi ma l'aggiunta dell'hash lo esclude categoricamente).
 
Ciò di cui parli rientra perfettamente nell'utilizzo della firma 
derivante da un algoritmo di cifratura asimmetrica (come RSA).
 
L'utilizzo di un algoritmo fuori standard e palesemente obsoleto come 
l'MD5 può essere contestato da chiunque, mentre una firma ottenuta da un 
protocollo di firma renderà l'autenticazione di fatto inattaccabile.
 
E' anche vero che calcolare un MD5 è molto banale, mentre ottenere una 
firma (valida) di un file è un'operazione più complessa; solo tu sai se 
veramente può bastare l'MD5.
 
Cristiano