Keyed-hash Message Authentication Code adalah teknik Message Authentication Code yang dibuat oleh Mihir Bellare, Ran Canetti, Hugo Krawczyk pada tahun 1996. Hal ini didasari karena fungsi hash itu sendiri tidak memungkinkan penggunaan kunci ketika menghitung nilai digest-nya.
Tujuan dari dibangunnya algoritma HMAC ini adalah:
a. Untuk menggunakan fungsi hash, tanpa modifikasi, yang telah tersedia dan mudah didapatkan.
b. Untuk mempertahankan performansi dari algoritma hash yang sudah ada
c. Untuk menggunakan dan mengatur kunci secara mudah
d. Untuk mendapatkan pengertian yang lebih dalam dari analisis kriptografi mengenai kekuatan mekanisme autentikasi yang berdasarkan fungsi hash
e. Untuk mempermudah pengubahan atau penggantian fungsi hash yang digunakan apabila algoritma hash baru yang lebih cepat atau lebih aman ditemukan.
Fungsi Hash untuk HMAC
# SHA1 dan variannya
Fungsi hash SHA1 dan keluarganya seperti SHA224, SHA256, SHA512 adalah salah satu algoritma yang paling banyak digunakan dalam implementasi Keyed-hash Message Authentication Code atau HMAC ini.