HMAC
From CRYPTUTOR
HMAC is a keyed-hash MAC and is a heuristic variant of NMAC. While in NMAC there are two randomly chosen keys, here keys are drawn from a single key as :
where
is a one way function and
and
are two deterministic numbers. Assuming
and
are somehow uncorrelated, HMAC is an approximation of NMAC which has proven security:
where
is a keyless hash function (such as MD5, SHA1, ...).

