P2 PIN verification: IBM 3624 and Visa PVV

Needs: Supporter

What the issuer does with the PIN: natural PIN and offset, the decimalisation table, PVV.

This is a supporter feature. Create a free account, then try every supporter feature free for 7 days.

Sign in Create a free account See plans

What this module covers

Track P · PIN and card security

You will be able to

  • Compute a natural PIN and an offset
  • Explain the decimalisation table and its attack
  • Compute and verify a PVV

The lesson

  1. Why it matters
  2. The concept
  3. Step by step: verifying at the issuer
  4. In the real world
  5. Common mistakes
  6. What to test

In the module

  • The lesson, with diagrams, common mistakes and what to test
  • A worked example you can change: Verifying a PIN two ways
  • Practice: 3 kinds of generated exercise, each with a step-by-step solution
  • A quiz of 8 questions

Key terms

Decimalisation table
The 16-digit table mapping hex digits 0–F to decimal digits in IBM 3624. A table that can be changed by a command enables PIN-guessing attacks.
IBM 3624 offset
The PIN method where the HSM computes a natural PIN from the PAN with the PVK and a decimalisation table, and the issuer stores the offset between it and the customer's PIN.
Natural PIN
In IBM 3624, the PIN computed from the account data alone; the offset turns it into the customer's chosen PIN.
PIN verification
The issuer's check that the PIN is right, done in its HSM by comparing a stored value (offset or PVV) with one computed from the entered PIN.
PIN verification key (PVK)
The issuer key used to compute PVVs or IBM 3624 natural PINs.
PVKI
The one-digit index telling which PIN verification key pair was used for the PVV.
PVV (PIN verification value)
Four digits computed from the PAN, the PVKI and the PIN with the PVK. Stored on the card's track or at the issuer.

Tools for this module: PVV / PIN Offset

Read the opening of the lesson →

The lesson, worked example, practice and quiz open with a supporter pass, which you can try free for 7 days.
An unhandled error has occurred. Reload 🗙

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.