Funzioni hash con PHP
Daniele Frongia e Raffaello Martinelli
Un funzione hash è una funzione non invertibile che trasforma un testo di lunghezza arbitraria o un file in una stringa di lunghezza fissa. Algoritmi come MD5, RIPEMD-160, SHA-512, GOST vengono utilizzati per realizzare firme digitali, rendere sicure transazioni bancarie, proteggere database, eseguire investigazioni giudiziarie, controllare la qualità della trasmissione di video e per numerosi altri scopi. Il primo obiettivo di questo lavoro è stato effettuare una panoramica delle funzioni hash, dalle proprietà matematiche agli scenari applicativi, con particolare attenzione alla resistenza alle collisioni. Il secondo obiettivo è stato mettere in pratica le funzioni con un linguaggio di programmazione, PHP, confrontare gli algoritmi in termini di performance e suggerire alcune indicazioni per aumentare il livello di sicurezza dei sistemi web based.
Questo documento va considerato come un contributo open che necessita di ulteriori approfondimenti e del coinvolgimento di altri esperti: per questo motivo verrà pubblicato su WikiBooks e sarà quindi possibile modificarlo e migliorarlo.


COMPLIMENTI E GRAZIE
hash(nome cognome):
9E0DD300D8D08A3F8AB2C21B3F1F95983F301220
Mi/vi appunto qualche modifica che poi farò su WikiBooks
—> Ins numero figure
—> Spiegare meglio costruzione MD
—> Uniformare linguaggio primo e secondo capitolo
—> Approfondire derivazione chiave
—> Confronto con JAVA?
—> MANCA bibliografia
Ad ogni modo complimenti, è una bomba!
la versione beta del paper? a ridicoli! bella l’immagine della saline. che saline sono?
diego, sono le saline di trapani
Non sono riuscita a identificare il messaggio nascosto nell’immagine..help!
L’ho cominciato a legge…Ve confesso ‘na cosa…se leggevo un
libro in cirillico era più comprensibile! Ma che lingua è?
Grazie,cercavo delle spiegazioni che ho trovato a pag.41.
Era tanto che volevo approfondimenti sulla mia lavatrice wirpool
Interessante il duplice approccio per dimostrare la non invertibilità delle funzioni di hashing: quello strettamente matematico e quello afferente la ricerca operativa – principio dei cassetti. Interessante inoltre l’applicazione per così dire giuridica di CF, che non conoscevo.
Hash (gost) of selected text:
5C3424547BD25A63B6C62DA597164CD2F58F823CC0CF86F26CBB4D4884A1B7E4
Refuso: Prof Umberto Cerruti e non CerrEti
Ciao Daniele,
Ti segnalo il mio post con un po’ di codice per i salted hash in PHP.
salted Hash in PHP
Ho conosciuto l’Ingegner Martinelli [lello] più di dieci anni fa..era un bravo ragazzo, onesto e pulito..una bella persona. Ora me lo ritrovo a scriver testi incompresibili [vi ricordate la supercazzola?], anzi direi astratti. Se fosse un quadro, sarebbe Klee. Insomma la qualità è rimasta la stessa..bravo LELLO !
(ho cancellato il mio botta e risposta con diego su richiesta di quest’ultimo)
-
So bene che questo non è un forum ma..posso chiedere una mano? Avrei la necessità di realizzare un sistema in cui la tabella dei PIN sia SICURA al 100% per un ristretto numero di utenti. Ho letto -anche se un pò di corsa- il documento.pdf allegato e mi sembra ci siano diverse strade, ad esempio le catene hash; grazie e scusate l’ab-uso del vostro blog. F.D.S.
-
Non che non voglia leggere le cinquanta pagine di Martinelli e Franci ma, in soldoni, per il login.php devo smettere di usare MD-5 e considerare invece RIPEMD?
@FrancoDeSantis:
prego versare euro 10.000 per consulenza sullo sviluppo applicativo a:
gruppo.tuscolana@istat.it
IBAN KM34I4355jlh2453639E
Banca Centrale Isole Cayman
Thanks!
@FrancoDeSantis:
In attesa del bonifico
ti dico che se necessiti una funzione hash del tutto esente dalle collisioni l’unica via è quella delle “funzioni hash perfette”, di cui parlo a pg.11, anche se in realtà vengono utilizzate per altri scopi (a questo proposito è interessante anche il “cuckoo hashing”). Se ti accontenti di un valore molto prossimo al 100% puoi sempre utilizzare una concatenazione di due o più funzioni. In ogni caso dipende dal contesto (ad esempio l’applicativo che gestisce questa tabella), se vuoi info più specifiche puoi contattarmi via email (l’email del blog).
[comunicazione di servizio: al momento slideshare, il servizio che ospita il nostro documento, fa le bizze e ci sono problemi di formattazione]
“Nuove” funzioni hash da tenere sott’occhio:
Cilk++ e MD6, record mondiale di prestazioni
ECRYPT, progetto europeo per la crittografia e il watermarking del futuro
http://programmazione.it/index.php?entity=eitem&idItem=40794
Ciao Daniele, buon anno!
Vai a vedere questo esperimento che hanno fatto…bello, ma davvero
preoccupante!
http://www.win.tue.nl/hashclash/rogue-ca/
A.M.
I crittografi si preparano alla minaccia del computer quantistico
(e anche le hash…)
http://programmazione.it/index.php?entity=eitem&idItem=41118
Interessanti anche le nuove applicazioni hashtag su Twitter http://www.mysocialweb.it/2009/04/23/piccola-guida-agli-hashtag-di-twitter/