5 Funzioni di hash e MAC

Una funzione di hash è una funzione che, dato un qualunque messaggio di lunghezza arbitraria, ne produce un'impronta (detta digest) di lunghezza prefissata (di solito dell'ordine di 100-200 bit). L'utilità di una funziona di hash sta nel poter utilizzare l'impronta come rappresentazione compatta del messaggio stesso, tipicamente firmando l'impronta anziché l'intero messaggio; perchè questo possa avvenire è desiderabile che la funzione presenti due proprietà particolari, sia cioè senza collisioni e unidirezionale. Le funzioni di hash possono essere utilizzate insieme con delle chiavi segrete per ottenere autenticazione e integrità dei messaggi, realizzando così dei MAC (Message Authentication Code). Più precisamente, possiamo definire algoritmo di MAC una funzione \( h_{k}\left( x\right) \), parametrizzata da una chiave \( k \), con le seguenti proprietà:
©2001 Davide Cerri