Gabarito letra C.
Em criptografia, HMAC (Hash-based Message Authentication Code) é uma construção específica para calcular o código de autenticação de mensagem (MAC) envolvendo uma função hash criptográfica em combinação com uma chave secreta. Da mesma forma que em qualquer MAC, este pode ser usado para simultaneamente verificar tanto a integridade como a autenticidade de uma mensagem. Qualquer função hash criptográfica, tal como MD5 ou SHA-1, pode ser usada no cálculo do HMAC; o algoritmo MAC resultante é denominado HMAC-MD5 ou HMAC-SHA1 em conformidade. A força criptográfica do HMAC depende da força da criptográfica da função hash subjacente, do tamanho do hash produzido como saída em bits, e do tamanho e da qualidade da chave criptográfica.
Uma função hash iterativa quebra uma mensagem em blocos de tamanho fixo e realiza uma iteração sobre eles com uma função de compressão. Por exemplo, MD5 e SHA-1 operam em blocos de 512 bits. O tamanho da saída do HMAC é o mesmo que o da função hash subjacente (128 ou 160 bits no caso do MD5 ou SHA-1, respectivamente), embora este possa ser truncado se desejado.
A definição e análise da construção HMAC foi publicada inicialmente em 1996 por Mihir Bellare, Ran Canetti, e Hugo Krawczyk,[1] que também escreveu a RFC 2104. Este paper também definiu uma variante chamada NMAC que é raramente usada. FIPS PUB 198 generaliza e normatiza o uso de HMACs. HMAC-SHA1 e HMAC-MD5 são usados dentro dos protocolos IPSec e TLS.
Fonte:https://pt.wikipedia.org/wiki/HMAC