HMAC
modalità per l'autenticazione di messaggi basata su una funzione di hash Da Wikipedia, l'enciclopedia libera
modalità per l'autenticazione di messaggi basata su una funzione di hash Da Wikipedia, l'enciclopedia libera
HMAC (keyed-hash message authentication code o hash-based message authentication code) è una modalità per l'autenticazione di messaggi (message authentication code) basata su una funzione di hash, utilizzata in diverse applicazioni legate alla sicurezza informatica.
Tramite HMAC è infatti possibile garantire sia l'integrità, sia l'autenticità di un messaggio. HMAC non si occupa di crittografare il messaggio: il messaggio (crittografato o meno) deve essere trasmesso insieme al codice HMAC. I destinatari che hanno una copia della chiave segreta potranno applicare l'algoritmo al messaggio ricevuto, e se il messaggio è autentico, potranno verificare che il codice ricevuto e quello calcolato da se stessi è identico. 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, entrambe attualmente considerate poco sicure.
Il messaggio viene suddiviso in blocchi di lunghezza pari a j bit. Viene poi selezionata una chiave segreta K. Se questa risulta essere più lunga di j bit, a questa viene applicata la funzione H. Quello che si ottiene è detta K', la chiave di HMAC.
Una volta definita K' l'eventuale padding della chiave originale la funzione HMAC calcolerà il valore nel seguente modo:
dove
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.