

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Générer et vérifier MAC
<a name="crypto-ops-mac"></a>

Les codes d'authentification de message (MAC) sont généralement utilisés pour authentifier l'intégrité d'un message (s'il a été modifié). Les hachages cryptographiques tels que le HMAC (code d'authentification des Hash-Based messages) CBC-MAC et le CMAC (code d'authentification des Cipher-based messages) fournissent une assurance supplémentaire à l'expéditeur du MAC en utilisant la cryptographie. HMAC est basé sur des fonctions de hachage tandis que CMAC est basé sur des chiffrements par blocs. Le service prend également en charge les algorithmes ISO9797 1 et 3 qui sont des types de. CBC-MACs 

Tous les algorithmes MAC de ce service combinent une fonction de hachage cryptographique et une clé secrète partagée. Ils prennent un message et une clé secrète, tels que le contenu clé d'une clé, et renvoient un tag ou un mac unique. Si un seul caractère du message change, ou si la clé secrète change, le tag obtenu est totalement différent. En exigeant une clé secrète, les MAC cryptographiques garantissent également l'authenticité ; il est impossible de générer un mac identique sans la clé secrète. Les MAC cryptographiques sont parfois appelés signatures symétriques, car ils fonctionnent comme des signatures numériques, mais utilisent une clé unique pour la signature et la vérification. 

AWS La cryptographie des paiements prend en charge plusieurs types de MAC :

**ALGORITHME ISO9797 1**  
Désigné par `KeyUsage` ISO9797\_ALGORITHM1. Si le champ n'est pas un multiple de la taille du bloc (8 caractères bytes/16 hexadécimaux pour TDES, 16 bytes/32 caractères pour AES), AWS Payment Cryptography applique automatiquement la méthode de remplissage 1 ISO9797. Si d'autres méthodes de rembourrage sont nécessaires, vous pouvez les appliquer avant d'appeler le service.

**ALGORITHME ISO9797 3 (MAC de détail)**  
Désigné par `KeyUsage` ISO9797\_ALGORITHM3. Les mêmes règles de remplissage s'appliquent que celles de l'algorithme 1

**ALGORITHME ISO9797 5 (CMAC)**  
Désigné par ou `KeyUsage` TR31\_M6\_ISO\_9797\_5\_CMAC\_KEY

**HMAC**  
Désigné par `KeyUsage` TR31\_M7\_HMAC\_KEY, y compris HMAC\_SHA224, HMAC\_SHA256, HMAC\_SHA384 et HMAC\_SHA512

**AS2805.4.1 MAC**  
Désigné par `KeyUsage` TR31\_M0\_ISO\_16609\_MAC\_KEY. Pour plus de détails sur l'AS2805, voir [AS2805](advanced.regional.as2805.md)

**DUKPT MAC**  
DUKPT MAC est généralement utilisé pour confirmer la source et la charge utile des messages to/from des terminaux de paiement. Il déduit une clé à l'aide des techniques de dérivation DUKPT, puis exécute le MAC. Les clés utilisées avec cette option sont désignées par `KeyUsage` TR31\_B0\_BASE\_DERIVATION\_KEY. 

**EMV MAC**  
Le MAC EMV est généralement appelé clé d'intégrité dans la documentation EMV. Il déduit une clé à l'aide des techniques de dérivation EMV, puis utilise ISO9797\_ALGORITHM3 en interne. Il est généralement utilisé pour envoyer des scripts d'émetteur à une carte à puce à des fins de reprogrammation. Les clés utilisées avec cette option sont désignées par `KeyUsage` TR31\_E2\_EMV\_MKEY\_INTEGRITY. Si vous envoyez un script et mettez à jour un code PIN hors ligne, veillez à [GenerateMacEmvPinChange](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_GenerateMacEmvPinChange)ce qu'il effectue ces deux opérations. 

**Topics**
+ [Générer un MAC](generate-mac.md)
+ [Vérifiez le MAC](verify-mac.md)