SDA vs DDA vs CDA: EMV Offline Data Authentication Explained

14 min read
ISO 8583 Guides

When you insert a chip card at a terminal with no internet connection, how does the terminal know the card is genuine? The answer lies in three cryptographic methods baked into every EMV chip β€” and understanding the differences between them is essential for anyone building or debugging payment systems.

What is Offline Data Authentication?

Offline Data Authentication (ODA) is the process by which an EMV terminal verifies that the data on a chip card is authentic β€” without contacting the issuer’s host. The terminal uses public key cryptography to validate that critical card data (PAN, expiry, usage restrictions) hasn’t been tampered with since the issuer personalized the chip.

ODA matters because:

  • Not every terminal is online β€” vending machines, transit gates, in-flight POS, and markets in rural areas may lack connectivity
  • Speed β€” offline authentication takes milliseconds vs. seconds for an online authorization
  • Liability β€” the strength of the ODA method directly affects chargeback liability under EMV chip liability shift rules

There are three ODA methods defined by EMVCo, each progressively stronger:

MethodFull NameSecurity LevelCard Cloning Protection
SDAStatic Data AuthenticationBasicNone
DDADynamic Data AuthenticationStrongYes
CDACombined DDA/Application Cryptogram GenerationStrongestYes + transaction binding

See it in action: Decode the AIP tag (82) in our EMV Tag Inspector to see which ODA methods a card supports.

Also Known As…

Offline data authentication terminology varies across specifications and vendor documentation:

TermMeaning
ODAOffline Data Authentication β€” the umbrella term
SDAStatic Data Authentication
DDADynamic Data Authentication
CDACombined DDA / Application Cryptogram Generation
fDDAFast DDA β€” contactless-optimized DDA (used by Visa payWave)
Offline CAMOffline Card Authentication Method β€” alternative industry term
RSA ODAODA using RSA public key cryptography (current standard)
ECC ODAODA using Elliptic Curve Cryptography (future EMVCo direction)

The PKI Foundation: How EMV Certificates Work

Before diving into SDA, DDA, and CDA, you need to understand the certificate chain that makes them all possible. EMV uses a three-level Public Key Infrastructure (PKI):

Level 1: Certificate Authority (CA)
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ EMVCo / Payment Brand CA        β”‚
β”‚ CA Public Key stored in terminalβ”‚
β”‚ (loaded during terminal config) β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
             β”‚ signs
             β–Ό
Level 2: Issuer
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Issuer Public Key Certificate   β”‚
β”‚ Tag 90 (stored on card chip)    β”‚
β”‚ Signed by CA Private Key        β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
             β”‚ signs
             β–Ό
Level 3: ICC (Card)
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ ICC Public Key Certificate      β”‚
β”‚ Tag 9F46 (stored on card chip)  β”‚
β”‚ Signed by Issuer Private Key    β”‚
β”‚ (DDA and CDA only)              β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

The terminal verifies this chain from top to bottom:

  1. Terminal has the CA Public Key (pre-loaded by the payment brand)
  2. Terminal recovers the Issuer Public Key from the Issuer Certificate (tag 90) using the CA Public Key
  3. Terminal recovers the ICC Public Key from the ICC Certificate (tag 9F46) using the Issuer Public Key β€” but only for DDA and CDA

This chain ensures that every key traces back to a trusted root β€” the payment brand’s Certificate Authority.

Key EMV Tags in the PKI Chain

TagNameRole in ODA
8FCA Public Key IndexIdentifies which CA key to use
90Issuer Public Key CertificateContains Issuer PK signed by CA
92Issuer Public Key RemainderOverflow bytes for large Issuer keys
9F32Issuer Public Key ExponentRSA exponent (usually 03 or 010001)
9F46ICC Public Key CertificateContains ICC PK signed by Issuer (DDA/CDA)
9F48ICC Public Key RemainderOverflow bytes for large ICC keys
9F47ICC Public Key ExponentRSA exponent for ICC key
93Signed Static Application DataSDA signature over card data
9F4BSigned Dynamic Application DataDDA/CDA signature (dynamic)

Look up any tag: Search our Reference Database for full EMV tag descriptions, or paste raw TLV data into the EMV Tag Inspector.

How SDA Works

Static Data Authentication is the simplest and oldest ODA method. The issuer signs a fixed block of card data during personalization, and the terminal verifies that signature at the point of sale.

SDA Step-by-Step

Card Personalization (at issuer):
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ 1. Issuer selects critical data      β”‚
β”‚    (PAN, expiry, restrictions, etc.) β”‚
β”‚ 2. Issuer hashes the data           β”‚
β”‚ 3. Issuer signs hash with           β”‚
β”‚    Issuer Private Key               β”‚
β”‚ 4. Signature stored as tag 93       β”‚
β”‚    (Signed Static Application Data) β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Transaction (at terminal):
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ 1. Terminal reads tag 8F             β”‚
β”‚    (CA Public Key Index)             β”‚
β”‚ 2. Terminal recovers Issuer PK       β”‚
β”‚    from tag 90 using CA PK           β”‚
β”‚ 3. Terminal verifies tag 93          β”‚
β”‚    using recovered Issuer PK         β”‚
β”‚ 4. If signature valid β†’ SDA passed   β”‚
β”‚    If invalid β†’ set TVR bit 7 byte 1 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

What SDA Proves

VerificationResult
Card data is genuineYes β€” signed by issuer
Data hasn’t been modifiedYes β€” signature covers critical data
Card itself is genuineNo β€” signature is static, can be copied
Transaction is uniqueNo β€” same signature every time

The Fatal Flaw: Cloning

Because the signature in tag 93 is static β€” identical for every transaction β€” an attacker who intercepts the card’s data can create a clone that produces the exact same signature. The terminal cannot distinguish the original card from the clone.

Original Card:   Tag 93 = A1B2C3D4...  (always the same)
Cloned Card:     Tag 93 = A1B2C3D4...  (copied verbatim)
                         ↑
              Terminal sees no difference

This is why SDA cards are effectively extinct in developed markets. They were common in early EMV deployments (2000-2010) but have been replaced by DDA and CDA cards.

SDA in the Terminal Verification Results

When SDA fails, the terminal sets byte 1, bit 7 of the TVR (tag 95):

TVR Byte 1BitMeaning
Bit 80x80Offline data authentication not performed
Bit 70x40SDA failed
Bit 60x20ICC data missing
Bit 50x10Card on terminal exception file
Bit 40x08DDA failed
Bit 30x04CDA failed

Decode TVR values in our EMV Tag Inspector β€” paste the 5-byte TVR (tag 95) to see which checks passed or failed.

How DDA Works

Dynamic Data Authentication solves SDA’s cloning problem by requiring the card to perform a real-time RSA signature during each transaction. The card has its own private key that never leaves the chip.

DDA Step-by-Step

Card Personalization (at issuer):
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ 1. Issuer generates RSA key pair     β”‚
β”‚    for the card (ICC keys)           β”‚
β”‚ 2. Issuer signs ICC Public Key with  β”‚
β”‚    Issuer Private Key                β”‚
β”‚ 3. ICC Public Key Certificate stored β”‚
β”‚    as tag 9F46                       β”‚
β”‚ 4. ICC Private Key stored in secure  β”‚
β”‚    element of chip (never exported)  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Transaction (at terminal):
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ 1. Terminal recovers Issuer PK       β”‚
β”‚    from tag 90 using CA PK           β”‚
β”‚ 2. Terminal recovers ICC PK          β”‚
β”‚    from tag 9F46 using Issuer PK     β”‚
β”‚ 3. Terminal sends INTERNAL AUTHENTICATEβ”‚
β”‚    command with unpredictable number β”‚
β”‚    (random data from terminal)       β”‚
β”‚ 4. Card signs the data using ICC     β”‚
β”‚    Private Key (on-chip RSA)         β”‚
β”‚ 5. Card returns Signed Dynamic       β”‚
β”‚    Application Data (tag 9F4B)       β”‚
β”‚ 6. Terminal verifies signature using β”‚
β”‚    ICC Public Key                    β”‚
β”‚ 7. If valid β†’ DDA passed             β”‚
β”‚    If invalid β†’ set TVR bit 4 byte 1 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

What DDA Proves

VerificationResult
Card data is genuineYes β€” certificate chain traces to CA
Data hasn’t been modifiedYes β€” signed data is verified
Card itself is genuineYes β€” only the real chip has the private key
Transaction is uniqueYes β€” unpredictable number makes each signature different

Why Cloning Fails Against DDA

The critical difference is the ICC Private Key. This key is generated inside the chip’s secure element and cannot be extracted β€” even with physical access to the chip. A cloned card would need to sign data with a private key it doesn’t have:

Original Card:   INTERNAL AUTHENTICATE β†’ signs with private key β†’ unique signature
Cloned Card:     INTERNAL AUTHENTICATE β†’ ??? no private key β†’ FAILS

DDA Performance Consideration

The on-chip RSA operation takes 100-300 milliseconds depending on the key size and chip hardware. This is acceptable for contact transactions but adds noticeable latency for contactless tap-and-go payments, which led to the development of fDDA (fast DDA) for contactless.

Key SizeOn-Chip Signing TimeUse Case
RSA-1024~100 msLegacy contact cards
RSA-1408~200 msCurrent contact cards
RSA-1984~300 msHigh-security cards
ECC P-256~50 msFuture specification

fDDA: Fast DDA for Contactless

Visa’s payWave specification introduced fDDA (also called qVSDC mode) to speed up DDA for contactless transactions. The card pre-computes part of the signature and combines it with transaction-specific data on the fly:

FeatureStandard DDAfDDA (Contactless)
INTERNAL AUTHENTICATESeparate commandCombined with GPO response
Terminal round-trips2+ (GPO + INTERNAL AUTH)1 (GPO only)
Total latency500+ ms~300 ms
SpecificationEMVCo Book 3Visa payWave (Book C-3)

How CDA Works

Combined DDA/Application Cryptogram Generation (CDA) is the strongest ODA method. It combines DDA’s dynamic signing with the application cryptogram (ARQC/TC/AAC) into a single operation, binding the authentication to the specific transaction.

CDA Step-by-Step

Card Personalization:
  Same as DDA β€” ICC key pair + certificates

Transaction (at terminal):
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ 1. Terminal recovers Issuer PK       β”‚
β”‚    from tag 90 using CA PK           β”‚
β”‚ 2. Terminal recovers ICC PK          β”‚
β”‚    from tag 9F46 using Issuer PK     β”‚
β”‚ 3. Terminal sends GENERATE AC commandβ”‚
β”‚    (not INTERNAL AUTHENTICATE)       β”‚
β”‚ 4. Card generates cryptogram (ARQC,  β”‚
β”‚    TC, or AAC) using symmetric key   β”‚
β”‚ 5. Card signs the cryptogram + data  β”‚
β”‚    using ICC Private Key (RSA)       β”‚
β”‚ 6. Card returns Signed Dynamic       β”‚
β”‚    Application Data (tag 9F4B)       β”‚
β”‚    containing both the signature     β”‚
β”‚    AND the cryptogram                β”‚
β”‚ 7. Terminal verifies RSA signature   β”‚
β”‚    and extracts cryptogram           β”‚
β”‚ 8. If valid β†’ CDA passed             β”‚
β”‚    If invalid β†’ set TVR bit 3 byte 1 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

What CDA Proves

VerificationResult
Card data is genuineYes β€” certificate chain traces to CA
Data hasn’t been modifiedYes β€” signed data is verified
Card itself is genuineYes β€” only real chip has private key
Transaction is uniqueYes β€” unpredictable number in signature
Cryptogram is authenticYes β€” cryptogram bound to signature
No wedge attack possibleYes β€” authentication and cryptogram are atomic

The Wedge Attack: Why CDA Matters

CDA’s critical advantage over DDA is protection against wedge attacks (also called man-in-the-middle or relay attacks). In a wedge attack against DDA:

DDA Vulnerability (wedge attack):
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Terminal  β”‚ ──▸ β”‚ Attacker β”‚ ──▸ β”‚ Real Cardβ”‚
β”‚           β”‚     β”‚ (wedge)  β”‚     β”‚          β”‚
β”‚ INTERNAL  β”‚     β”‚ Pass     β”‚     β”‚ Signs    β”‚
β”‚ AUTH      β”‚     β”‚ through  β”‚     β”‚ data     β”‚
β”‚           β”‚ ◂── β”‚          β”‚ ◂── β”‚          β”‚
β”‚ DDA OK!   β”‚     β”‚ Modify   β”‚     β”‚          β”‚
β”‚           β”‚     β”‚ GENERATE β”‚     β”‚          β”‚
β”‚ GENERATE  β”‚ ──▸ β”‚ AC       β”‚ ──▸ β”‚          β”‚
β”‚ AC        β”‚     β”‚ (change  β”‚     β”‚ Generate β”‚
β”‚           β”‚     β”‚ amount!) β”‚     β”‚ TC       β”‚
β”‚           β”‚ ◂── β”‚          β”‚ ◂── β”‚          β”‚
β”‚ TC OK!    β”‚     β”‚          β”‚     β”‚          β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
      ↑
DDA and cryptogram are separate operations.
Attacker can pass DDA honestly, then
modify the GENERATE AC command data.
CDA Defense:
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Terminal  β”‚ ──▸ β”‚ Attacker β”‚ ──▸ β”‚ Real Cardβ”‚
β”‚           β”‚     β”‚ (wedge)  β”‚     β”‚          β”‚
β”‚ GENERATE  β”‚     β”‚ Cannot   β”‚     β”‚ Signs    β”‚
β”‚ AC        β”‚     β”‚ modify   β”‚     β”‚ cryptogramβ”‚
β”‚ (CDA)     β”‚     β”‚ without  β”‚     β”‚ + data   β”‚
β”‚           β”‚ ◂── β”‚ breaking β”‚ ◂── β”‚ together β”‚
β”‚ Verify    β”‚     β”‚ signatureβ”‚     β”‚          β”‚
β”‚ signature β”‚     β”‚          β”‚     β”‚          β”‚
β”‚ + crypto  β”‚     β”‚          β”‚     β”‚          β”‚
β”‚ ATOMIC!   β”‚     β”‚          β”‚     β”‚          β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
      ↑
Cryptogram is INSIDE the signed data.
Any modification breaks the signature.

Side-by-Side Comparison

This table summarizes the key differences across all three ODA methods:

FeatureSDADDACDA
Signed byIssuer (static)ICC chip (dynamic)ICC chip (dynamic)
Signature typeFixed at personalizationGenerated per transactionGenerated per transaction
Certificate chainCA β†’ IssuerCA β†’ Issuer β†’ ICCCA β†’ Issuer β†’ ICC
Prevents cloningNoYesYes
Prevents wedge attacksNoNoYes
APDU commandNone (data on card)INTERNAL AUTHENTICATEGENERATE AC
Cryptogram bindingNoneNoneYes
On-chip cryptoNone requiredRSA signatureRSA signature
Chip costLowestMediumMedium
Transaction speedFastestSlower (+100-300ms)Similar to DDA
AIP bits (tag 82)Bit 7 byte 1Bit 6 byte 1Bit 5 byte 1
TVR failure bitByte 1 bit 7Byte 1 bit 4Byte 1 bit 3
Industry statusObsoleteActivePreferred

Application Interchange Profile (AIP) - Tag 82

The AIP (tag 82) tells the terminal which ODA methods the card supports. This is a 2-byte value where specific bits indicate SDA, DDA, and CDA capability:

AIP Byte 1BitHex MaskMeaning
Bit 770x40SDA supported
Bit 660x20DDA supported
Bit 550x10Cardholder verification supported
Bit 440x08Terminal risk management to be performed
Bit 110x01CDA supported

Reading the AIP

Here’s how to interpret common AIP values:

AIP ValueBinary (Byte 1)Meaning
19800001 1001CDA + terminal risk management + cardholder verification
39800011 1001DDA + CDA + terminal risk management + cardholder verification
59800101 1001SDA + CDA + terminal risk management + cardholder verification
79800111 1001SDA + DDA + CDA (supports all three methods)
40000100 0000SDA only
20000010 0000DDA only

Try it yourself: Paste a complete Field 55 into our EMV Tag Inspector to see the AIP decoded with bit-level descriptions.

ODA in the Transaction Flow

Here’s where ODA fits in the overall EMV transaction flow:

Card Insertion / Tap
       β”‚
       β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ SELECT Application  β”‚  ← AID selection
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
           β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ GET PROCESSING OPTS β”‚  ← Returns AIP (tag 82) + AFL (tag 94)
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
           β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ READ RECORDS        β”‚  ← Read SDA/DDA/CDA data from card
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
           β–Ό
β”Œβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β”
β•‘ OFFLINE DATA AUTH   β•‘  ← SDA, DDA, or CDA performed HERE
β•‘ (ODA)               β•‘
β””β•β•β•β•β•β•β•β•β•β•β•€β•β•β•β•β•β•β•β•β•β•β”˜
           β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Processing          β”‚  ← CVM, risk management
β”‚ Restrictions        β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
           β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ GENERATE AC         β”‚  ← Cryptogram (ARQC/TC/AAC)
β”‚ (CDA: combined)     β”‚     For CDA: ODA happens here instead
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
           β–Ό
   Online / Offline Decision

For SDA and DDA, ODA happens as a separate step before GENERATE AC. For CDA, authentication is combined with the GENERATE AC command β€” the card produces the cryptogram and the RSA signature in a single atomic operation.

What ODA Does NOT Protect Against

Understanding the limitations prevents overconfidence:

ThreatODA Protection
Card cloning (magnetic stripe)No β€” ODA only applies to chip transactions
Card-not-present (CNP) fraudNo β€” ODA requires physical chip interaction
Lost/stolen card (genuine chip used)No β€” ODA proves the card is real, not the cardholder
PIN capture / shoulder surfingNo β€” ODA doesn’t cover cardholder verification
Issuer-side data breachNo β€” ODA protects terminal-to-card, not host-side
Replay of online-authorized transactionsNo β€” ODA is offline only; ARQC handles online auth

ODA answers one question: “Is this chip card genuine and unmodified?” It does not replace online authorization, cardholder verification, or issuer risk management.

Card Brand ODA Requirements

Each payment brand sets minimum ODA requirements for cards and terminals on their network:

BrandMinimum Card ODAMinimum Terminal SupportNotes
VisaDDA or CDADDA and CDASDA-only cards deprecated; fDDA for contactless
MastercardCDA preferredCDAM/Chip Advance requires CDA
American ExpressDDADDAAEIPS standard
DiscoverDDADDAD-PAS standard
JCBDDA or CDADDAJ/Speedy for contactless
UnionPayDDA or CDADDA + CDAPBOC 3.0 standard

Quick Reference Table

ConceptDescription
ODAOffline Data Authentication β€” terminal verifies card genuineness without going online
SDAStatic Data Authentication β€” fixed signature, vulnerable to cloning
DDADynamic Data Authentication β€” per-transaction signature, clone-resistant
CDACombined DDA + Cryptogram β€” atomic binding prevents wedge attacks
fDDAFast DDA β€” Visa’s contactless-optimized DDA variant
AIPApplication Interchange Profile (tag 82) β€” declares ODA capabilities
TVRTerminal Verification Results (tag 95) β€” records ODA pass/fail
Tag 90Issuer Public Key Certificate β€” signed by CA
Tag 93Signed Static Application Data β€” the SDA signature
Tag 9F46ICC Public Key Certificate β€” signed by Issuer (DDA/CDA)
Tag 9F4BSigned Dynamic Application Data β€” per-transaction signature
Tag 8FCA Public Key Index β€” identifies which root key to use
INTERNAL AUTHENTICATEAPDU command that triggers DDA
GENERATE ACAPDU command that triggers CDA (combined with cryptogram)

Next Steps

Now that you understand SDA, DDA, and CDA:

  1. Decode chip data with the EMV Tag Inspector β€” look for tags 82, 90, 93, 9F46, and 9F4B
  2. Look up ODA tags in the Reference Database for complete tag definitions
  3. Understand the cryptogram in our EMV Field 55 Guide β€” CDA binds ODA to the ARQC/TC
  4. Learn about HSMs in our HSM Basics Guide β€” the devices that manage CA and Issuer key pairs
  5. Explore 3DES vs AES in our 3DES vs AES in Payments β€” the encryption that protects cryptogram keys
  6. Review ARQC generation with the ARQC Calculator β€” the online counterpart to offline authentication
  7. Understand entry modes in our POS Entry Mode Guide β€” entry modes 05 and 07 indicate chip/contactless ODA

This post is part of the ISO 8583 Mastery series. Follow along as we explore payment messaging in depth.

Related Posts

3D Secure 2.0 Explained: The Developer's Guide to Strong Customer Authentication
Feb 18, 2026 10 min
3DES vs AES in Payments: Why the Industry is Migrating
Feb 19, 2026 14 min
PCI DSS Requirements Explained: The Complete Compliance Checklist for Developers
Feb 18, 2026 15 min

πŸ’¬ Discussion

Have a question or feedback? Leave a comment below β€” powered by GitHub Discussions.

❓ Frequently Asked Questions

What is the difference between SDA, DDA, and CDA?

SDA (Static Data Authentication) authenticates static card data. DDA (Dynamic Data Authentication) prevents card cloning by having the chip generate a dynamic signature. CDA (Combined DDA/Application Cryptogram Generation) adds security by combining the dynamic signature with the transaction cryptogram.

Why is SDA being phased out?

SDA relies on static data signed by the issuer. It proves the data wasn’t altered but cannot prove the chip itself wasn’t cloned (skimming). DDA and CDA are required to prevent modern cloning attacks.

When is offline authentication used?

Offline authentication is crucial for transit systems (like the London Underground), toll booths, and regions with unreliable telecom networks where waiting for online authorization is impossible.

\n