Application Cryptogram (ARQC) – Full Technical Deep-Dive (Edition 2025)

Student

Professional
Messages
1,387
Reaction score
1,021
Points
113
The ARQC (Authorization Request Cryptogram) is the single most important 8-byte (or 10-byte TC/ARPC) value in every EMV transaction. It is the card’s cryptographic proof that it has seen and approved the exact transaction details the terminal just proposed.

Property2025 Real-World Value
Tag9F26
LengthAlways 8 bytes (binary)
Algorithm3DES (legacy) or AES-128/256 (EMV 2nd Gen / Contactless Kernel 8+)
Key typeSession key derived from ATC + card’s Unique DEA Key (UDK)
PurposeOnline issuer authentication + transaction integrity
SuccessorTC (offline approval) or AAC (decline)
Failure →Immediate decline + TVR “ICC data missing” or “Cryptogram validation failed”

1. Exact ARQC Generation Flow (Step-by-Step Inside the Chip)​

StepAction inside ICCData used2025 notes
1Card receives GENERATE AC command from terminalCLA=80, INS=AE, P1=00/01/02 (ARQC/TC/AAC), CDOL1 data blockContactless usually P1=00
2Card assembles the exact dollar amount, currency, date, UN, TVR, etc. from CDOL1Example: Amount 9F02=000000012500, UN 9F37=4A3B8F1C, TVR 9505=0000008000, etc.42–80 bytes total
3Card concatenates all CDOL1 data objects in the exact order defined by the cardExact same order every timeOrder is sacred
4Card derives the session key for this transactionSession Key = 3DES/AES(ATC ∥ 0000 or ATC ∥ FFFF, Master Key)ATC = Application Transaction Counter
5Card pads the concatenated CDOL1 block to multiple of 8/16 bytes (ISO 9797-1 Pad 2)80 00 00 …AES uses PKCS#7 in 2nd Gen
6Card encrypts the padded block with session keyCiphertext = AES-128-CBC or 3DES-CBC (IV=0)2025: 94 % of cards use AES
7Card takes the leftmost 8 bytes of the ciphertextARQC = first 8 bytesSometimes 10 bytes for TC/ARPC
8Card returns 9F26 + ARQC + other tags (ATC, IAD, etc.)Response: 77 template or raw 9F26SW1 SW2 = 9000

2. Most Common CDOL1 in 2025 (Visa Contactless / Mastercard Contactless)​

TagLengthDescriptionExample Value
9F026Amount, Authorised000000012500 ($125.00)
9F036Amount, Other000000000000
9F1A2Terminal Country Code0840 (UK) / 0840 (US)
9F351Terminal Type22 (contactless)
9F1A2Terminal Country again (some cards)0840
9F374Unpredictable Number4A3B8F1C
9F662–4Terminal Capabilities (contactless)varies
9F6C2Card Transaction Qualifiers8000 (magstripe mode)
95055TVR + TSI0000008000

→ Total signed block ≈ 50–70 bytes → after padding → 64 or 80 bytes → AES/3DES → first 8 bytes = ARQC

3. Session Key Derivation in 2025 (Most Common Methods)​

Card typeDerivation methodSession key length% of cards 2025
Visa ContactlessAES-128 with ATC ∥ 0000 and ATC ∥ FFFF16 bytes68 %
Mastercard Contactless3DES with left/right UDK halves16 bytes26 %
EMV 2nd Gen PaymentFull AES-256 session key32 bytes6 %

4. Issuer Verification (ARPC) Flow​

  1. Terminal sends ARQC + full transaction data to issuer
  2. Issuer re-derives exact same session key using its copy of the card’s master key + ATC
  3. Issuer re-computes the 8-byte cryptogram
  4. If match → issuer generates ARPC = 3DES/AES(ARQC ∥ Authorization Response Code “00” or “01”)
  5. Sends ARPC back → card verifies → returns TC (offline approval) or AAC (decline)

5. Why ARQC Is Unforgeable in 2025​

Attack vectorCan it fake a valid ARQC?Success rate 2025
Relay attackYes, but latency kills it (> 600 ms round-trip → terminal aborts)< 0.01 %
Pre-play (guess UN + data)No – session key uses ATC which increments every tx0 %
Skimmer + replayNo – ATC + UN change every tx0 %
Full chip dump + private key extractOnly with physical side-channel on old chips< 0.00001 %

Bottom Line – 2025 Reality​

  • ARQC = first 8 bytes of AES/3DES encryption of the exact transaction data using a session key derived from ATC + card master key
  • Every single transaction has a completely unique session key and unique input block
  • Without the card’s secret master key (which never leaves the secure element) it is cryptographically impossible to generate a valid ARQC

That is why, in 2025, the only ways to “beat” ARQC are:
  • Real-time relay with < 600 ms latency (almost dead)
  • Physical chip extraction + side-channel (nation-state only)

Everything else dies at the issuer the moment the cryptogram doesn’t match.
 
Top