

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 Hash-Based Mensagem) CBC-MAC e CMAC (Código de Autenticação de Cipher-based Mensagem), 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 suporta os algoritmos ISO9797 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, os MACs criptográficos também fornecem autenticidade. É impossível gerar um MAC idêntico sem a chave secreta. Os MACs criptográficos às vezes são chamados 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:

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

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

**ALGORITMO 5 ISO9797 (CMAC)**  
Indicado por `KeyUsage` de TR31\_M6\_ISO\_9797\_5\_CMAC\_KEY

**HMAC**  
Indicado por `KeyUsage` de TR31\_M7\_HMAC\_KEY, incluindo HMAC\_SHA224, HMAC\_SHA256, HMAC\_SHA384 e HMAC\_SHA512

**AS2805.4.1 MAC**  
Indicado por `KeyUsage` TR31\_M0\_ISO\_16609\_MAC\_KEY. Para obter mais detalhes sobre o 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` TR31\_B0\_BASE\_DERIVATION\_KEY. 

**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 ISO9797\_ALGORITHM3 internamente. 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` TR31\_E2\_EMV\_MKEY\_INTEGRITY. 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)