

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 un décalage d' IBM3624 épingle pour une épingle
<a name="generate-ibm3624"></a>

 IBM 3624 PIN Offset est aussi parfois appelée méthode IBM. Cette méthode génère un natural/intermediate code PIN à l'aide des données de validation (généralement le PAN) et d'une clé PIN (PVK). Les épingles naturelles sont en fait une valeur dérivée et le caractère déterministe est très efficace à gérer pour un émetteur, car aucune donnée PIN n'a besoin d'être stockée au niveau du titulaire de la carte. L'inconvénient le plus évident est que ce système ne prend pas en compte les épingles sélectionnables ou aléatoires par le titulaire de la carte. Pour autoriser ces types de broches, un algorithme de décalage a été ajouté au schéma. Le décalage représente la différence entre l'épingle sélectionnée (ou aléatoire) par l'utilisateur et la touche naturelle. La valeur de décalage est enregistrée par l'émetteur ou le processeur de la carte. Au moment de la transaction, le service AWS de cryptographie des paiements recalcule en interne le code PIN naturel et applique le décalage pour trouver le code PIN. Il compare ensuite cette valeur à la valeur fournie par l'autorisation de transaction. 

Plusieurs options existent pour IBM3624 :
+ `Ibm3624NaturalPin`affichera le code PIN naturel et un bloc de code PIN crypté
+ `Ibm3624PinFromOffset`générera un bloc PIN crypté en fonction d'un décalage
+ `Ibm3624RandomPin`générera un code PIN aléatoire, puis le décalage correspondant et le bloc de code crypté.
+  `Ibm3624PinOffset`génère le décalage de broche en fonction d'une épingle sélectionnée par l'utilisateur.

En interne à la cryptographie des AWS paiements, les étapes suivantes sont effectuées :
+ Ajoutez le plan fourni à 16 caractères. Si <16 est indiqué, tapez sur le côté droit en utilisant le caractère de rembourrage fourni.
+ Chiffre les données de validation à l'aide de la clé de génération du code PIN.
+ Décimalisez les données chiffrées à l'aide de la table de décimalisation. Cela fait correspondre des chiffres hexadécimaux à des chiffres décimaux, par exemple « A » peut correspondre à 9 et 1 peut correspondre à 1.
+ Obtenez les 4 premiers chiffres à partir d'une représentation hexadécimale de la sortie. C'est l'épingle naturelle.
+ Si un code PIN a été sélectionné par l'utilisateur ou généré au hasard, modulo soustrait le code naturel du code PIN du client. Le résultat est le décalage de la broche.

**Topics**
+ [

## Exemple : générer un décalage d' IBM3624 épingle pour une épingle
](#generate-ibm3624-random-example)

## Exemple : générer un décalage d' IBM3624 épingle pour une épingle
<a name="generate-ibm3624-random-example"></a>

Dans cet exemple, nous allons générer une nouvelle épingle (aléatoire) dont les sorties seront chiffrées `PIN block` (PinData. PinBlock) et une valeur de `IBM3624` décalage (Pindata.offset). Les entrées sont `PAN` les données de validation (généralement le pan), le caractère de remplissage, le`Pin Verification Key`, le `Pin Encryption Key` et le`PIN block format`.

 Cette commande nécessite que la clé de génération du code PIN soit de type `TR31_V1_IBM3624_PIN_VERIFICATION_KEY` et que la clé de chiffrement soit de type `TR31_P0_PIN_ENCRYPTION_KEY` 

**Example**  
L'exemple suivant montre la génération d'une épingle aléatoire, puis la sortie du bloc de code PIN crypté et de la valeur de IBM3624 décalage à l'aide de Ibm3624. RandomPin   

```
$ aws payment-cryptography-data generate-pin-data --generation-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/37y2tsl45p5zjbh2 --encryption-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/ivi5ksfsuplneuyt --primary-account-number 171234567890123 --pin-block-format ISO_FORMAT_0 --generation-attributes Ibm3624RandomPin="{DecimalizationTable=9876543210654321,PinValidationDataPadCharacter=D,PinValidationData=171234567890123}"
```

```
{
              "GenerationKeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/37y2tsl45p5zjbh2",
              "GenerationKeyCheckValue": "7F2363",
              "EncryptionKeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ivi5ksfsuplneuyt",
              "EncryptionKeyCheckValue": "7CC9E2",
              "EncryptedPinBlock": "AC17DC148BDA645E",
              "PinData": {
                  "PinOffset": "5507"
              }
          }
```