A operação geral do algoritmo HMAC pode ser ilustrada pela figura a seguir, onde K representa uma chave secreta e M corresponde à mensagem de entrada (dividida em blocos Yi de b bits cada, já com o padding especificado na função de hash subjacente). O símbolo || representa o operador de concatenação e o símbolo ⊕ representa a operação XOR:

De acordo com a especificação do HMAC, K+ representa