

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Gerar e verificar MAC
<a name="crypto-ops-mac"></a>

Os Message Authentication Codes (MAC – códigos de autenticação de mensagens) são normalmente usados para autenticar a integridade de uma mensagem (independentemente de ela ter sido modificada). Hashes criptográficos, como HMAC (Código de Autenticação de Mensagem Baseado em Hash), CBC-MAC e CMAC (Código de Autenticação de Mensagem Baseado em Cifra) fornecem garantia adicional ao remetente do MAC ao utilizar criptografia. O HMAC é baseado em funções de hash, enquanto o CMAC é baseado em cifras de bloco. O serviço também oferece suporte aos ISO9797 algoritmos 1 e 3, que são tipos de CBC-MACs. 

Todos os algoritmos MAC deste serviço combinam uma função hash criptográfica e uma chave secreta compartilhada. Eles usam uma mensagem e uma chave secreta, como o material de chave em uma chave, e retornam uma tag ou MAC exclusivo. Se até mesmo um caractere da mensagem mudar, ou se a chave secreta mudar, a tag resultante será totalmente diferente. Ao exigir uma chave secreta, a criptografia MACs também fornece autenticidade; é impossível gerar um mac idêntico sem a chave secreta. Às vezes, as criptográficas MACs são chamadas de assinaturas simétricas, porque funcionam como assinaturas digitais, mas usam uma única chave para assinatura e verificação. 

AWS A criptografia de pagamento suporta vários tipos de MACs:

**ISO9797 ALGORITMO 1**  
Indicado por `KeyUsage` de \$1. ISO9797 ALGORITHM1 Se o campo não for um múltiplo do tamanho do bloco (8 bytes/16 caracteres hexadecimais para TDES, 16 bytes/32 caracteres para AES), a criptografia de pagamento aplicará automaticamente o Método de preenchimento 1. AWS ISO9797 Se outros métodos de preenchimento forem necessários, você poderá aplicá-los antes de ligar para o serviço.

**ISO9797 ALGORITMO 3 (MAC de varejo)**  
Indicado por `KeyUsage` de \$1. ISO9797 ALGORITHM3 As mesmas regras de preenchimento se aplicam ao Algoritmo 1.

**ISO9797 ALGORITMO 5 (CMAC)**  
Indicado por de \$1M6\$1ISO\$19797\$15\$1CMAC\$1KEY `KeyUsage` TR31

**HMAC**  
Indicado por `KeyUsage` TR31 \$1M7\$1HMAC\$1KEY incluindo HMAC\$1, HMAC\$1, HMAC\$1 e HMAC\$1 SHA224 SHA256 SHA384 SHA512

**AS28054.4.1 MAC**  
Indicado por de `KeyUsage` \$1M0\$1ISO\$116609\$1MAC\$1KEY. TR31 Para obter mais detalhes sobre AS2805, consulte [AS2805](advanced.regional.as2805.md)

**MACARRÃO ESVAZIADO**  
O DUKPT MAC é normalmente usado para confirmar a origem e a carga útil dos terminais de pagamento de mensagens to/from . Ele deriva uma chave usando técnicas de derivação DUKPT e, em seguida, executa o MAC. As chaves usadas com essa opção são indicadas por um de `KeyUsage` \$1B0\$1BASE\$1DERIVATION\$1KEY TR31. 

**EMV MAC**  
O EMV MAC é normalmente chamado de chave de integridade na documentação do EMV. Ele deriva uma chave usando técnicas de derivação EMV e, em seguida, utiliza \$1 internamente. ISO9797 ALGORITHM3 Normalmente é usado para enviar scripts do emissor para um cartão com chip para reprogramação. As chaves usadas com essa opção são indicadas por um de `KeyUsage` \$1E2\$1EMV\$1MKEY\$1INTEGRITY TR31. Se você estiver enviando um script e atualizando um PIN offline, verifique [GenerateMacEmvPinChange](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_GenerateMacEmvPinChange)se ele executa essas duas operações. 

**Topics**
+ [Gerar MAC](generate-mac.md)
+ [Verificar MAC](verify-mac.md)