HMAC

Da Wikipedia, l'enciclopedia libera.

HMAC (keyed-hash message authentication code) è una modalità per l'autenticazione di messaggi basata su una funzione di hash, utilizzata in diverse applicazioni legate alla sicurezza informatica. Tramite HMAC è infatti possibile garantire sia l'integrità che l'autenticità di un messaggio. HMAC utilizza infatti una combinazione del messaggio originale e una chiave segreta per la generazione del codice. Una caratteristica peculiare di HMAC è il non essere legato a nessuna funzione di hash in particolare, questo per rendere possibile una sostituzione della funzione nel caso non fosse abbastanza sicura. Nonostante ciò le funzioni più utilizzate sono MD5 (attualmente considerata poco sicura) e SHA-1.

Funzionamento[modifica | modifica wikitesto]

Il messaggio viene suddiviso in blocchi di lunghezza pari a j bit. Seleziono una chiave segreta K, se questa risulta essere più lunga di j bit a questa applico la funzione H. Quello che si ottiene è detta K', la chiave di HMAC.

K' = K se |K| = j bit
K' = K + padding di zeri se |K| < j bit
K' = H(K) se > jbit
ipad = 00110110 ripetuta j/8 volte
opad = 01011100 ripetuta j/8 volte

Una volta definita K' l'eventuale padding della chiave originale la funzione HMAC calcolerà il valore nel seguente modo:

\mathrm{HMAC}_K(M) = h\Bigg((K' \oplus \mathrm{opad}) \| h\Big((K' \oplus \mathrm{ipad}) \| M'\Big)\Bigg)

con M' = alla suddivisione in blocchi del messaggio M

Collegamenti esterni[modifica | modifica wikitesto]