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 e SHA-1 (attualmente considerate poco sicure).

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]