

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Genera e verifica MAC
<a name="crypto-ops-mac"></a>

I codici di autenticazione dei messaggi (MAC) vengono in genere utilizzati per autenticare l'integrità di un messaggio (indipendentemente dal fatto che sia stato modificato). Gli hash crittografici come HMAC (Hash-Based Message Authentication Code), CBC-MAC e CMAC (Cipher-Based Message Authentication Code) forniscono un'ulteriore garanzia del mittente del MAC utilizzando la crittografia. HMAC si basa su funzioni hash mentre CMAC si basa su cifrari a blocchi. Il servizio supporta anche ISO9797 gli algoritmi 1 e 3, che sono tipi di CBC-. MACs 

Tutti gli algoritmi MAC di questo servizio combinano una funzione hash crittografica e una chiave segreta condivisa. Accettano un messaggio e una chiave segreta, ad esempio il materiale chiave contenuto in una chiave, e restituiscono un tag o mac univoco. Se anche solo un carattere del messaggio cambia o se la chiave segreta cambia, il tag risultante è completamente diverso. Richiedendo una chiave segreta, la crittografia garantisce MACs anche l'autenticità; è impossibile generare un mac identico senza la chiave segreta. Le firme crittografiche MACs sono talvolta chiamate firme simmetriche, perché funzionano come le firme digitali, ma utilizzano un'unica chiave sia per la firma che per la verifica. 

AWS La crittografia dei pagamenti supporta diversi tipi di: MACs

**ISO9797 ALGORITMO 1**  
Denotato con `KeyUsage` di ISO9797 \$1ALGORITHM1. Se il campo non è un multiplo della dimensione del blocco (8 byte/16 caratteri esadecimali per TDES, 16 byte/32 caratteri per AES), Payment Cryptography applica automaticamente il metodo di riempimento 1. AWS ISO9797 Se sono necessari altri metodi di riempimento, è possibile applicarli prima di chiamare il servizio.

**ISO9797 ALGORITMO 3 (RETAIL MAC)**  
Denotato con `KeyUsage` o ISO9797 \$1ALGORITHM3. Le stesse regole di riempimento si applicano all'algoritmo 1

**ISO9797 ALGORITMO 5 (CMAC)**  
Denotato da \$1M6\$1ISO\$19797\$15\$1CMAC\$1KEY `KeyUsage` TR31

**HMAC**  
Denotato con `KeyUsage` TR31 \$1M7\$1HMAC\$1KEY che include HMAC\$1, HMAC\$1, HMAC\$1 e HMAC\$1 SHA224 SHA256 SHA384 SHA512

**AS28054.4.1 MAC**  
Denotato con `KeyUsage` TR31 \$1M0\$1ISO\$116609\$1MAC\$1KEY. Per ulteriori dettagli su, vedere AS2805 [AS2805](advanced.regional.as2805.md)

**DUMP MAC**  
DUKPT MAC viene in genere utilizzato per confermare la fonte e il payload dei terminali di pagamento dei messaggi. to/from Deriva una chiave utilizzando le tecniche di derivazione DUKPT e quindi esegue il MAC. Le chiavi utilizzate con questa opzione sono contrassegnate da \$1B0\$1BASE\$1DERIVATION\$1KEY. `KeyUsage` TR31 

**EMV MAC**  
EMV MAC viene generalmente definito come una chiave di integrità nella documentazione EMV. Deriva una chiave utilizzando tecniche di derivazione EMV e quindi utilizza \$1 internamente. ISO9797 ALGORITHM3 In genere viene utilizzato per inviare gli script dell'emittente a una chip card per la riprogrammazione. Le chiavi utilizzate con questa opzione sono contrassegnate da \$1E2\$1EMV\$1MKEY\$1INTEGRITY. `KeyUsage` TR31 Se state inviando uno script e aggiornando un pin offline, verificate che esegua entrambe queste operazioni. [GenerateMacEmvPinChange](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_GenerateMacEmvPinChange) 

**Topics**
+ [Genera un MAC](generate-mac.md)
+ [Verifica MAC](verify-mac.md)