bijavix blog

Understanding SmartCards: A Complete Technical view on EMV and APDU

The EMV framework governs how integrated circuit cards (ICCs) interoperate with acceptance devices (POS, ATM) to achieve reliable identification of a payment application, authentication of the card, verification of the cardholder, risk-managed authorization of a transaction, and secure evidence of the transaction outcome. The resulting reduction in card-present fraud is a direct consequence of transaction-unique cryptograms, asymmetric bootstrapping of trust via certificates, and disciplined terminal/card state machines.

This article focuses on the terminal to card protocol and its cryptographic semantics. It explains the physical/link substrates (ISO/IEC 7816 and ISO/IEC 14443), the ISO/IEC 7816-4 APDU model, EMV Book 3 application semantics, and the security architecture in EMV Book 2. It also provides contactless kernel considerations, host authorization interplay (ISO 8583 and DE55), and engineering checklists for correctness and robustness.

1. Layered Model and Entities

EMV integrates several standards: the physical and transport layers for contact cards are defined by ISO/IEC 7816 (electrical, ATR/PTS negotiation, T=0/T=1 protocols), and for contactless by ISO/IEC 14443 (anti-collision, activation, frame formats, bit rates). On top of those transports, ISO/IEC 7816-4 specifies the interindustry APDU command/response model. EMV Book 3 defines the data model, transaction state machine, and APDU usage in payment applications. Host authorization commonly uses ISO 8583 to convey chip data (DE55) to issuers. The primary actors are the ICC (contact) or PICC (contactless), the terminal and its EMV kernel, the acquirer/processor, and the issuer.

2. Smart Card Substrate (Concise but Sufficient)

2.1. Contact Cards (ISO/IEC 7816)

A contact session starts with reset (RST) and the card’s ATR (Answer To Reset). The terminal may negotiate Protocol Type Selection (PTS), choosing T=0 (byte-oriented, half-duplex with procedure bytes) or T=1 (block-oriented with error detection and chaining). The Fi/Di parameters in ATR/PTS determine the elementary time unit (ETU) and effective data rate. EMV terminals must support the APDU interindustry model on either transport.

2.2. Contactless Cards (ISO/IEC 14443)

A proximity session begins with anti-collision and activation (Type A/B), followed by parameter selection (bit rate 106–848 kbps). After activation, the APDU service layer is established over the RF transport. EMV contactless kernels enforce tighter timing, bounded frame sizes, and kernel-specific outcome logic while retaining the same high-level APDU semantics and TLV data model as contact.

3. APDU Fundamentals (ISO/IEC 7816‑4)

An APDU is an application-layer request/response pair transported over T=0 or T=1 (or 14443). The command APDU consists of a 4-byte header {CLA, INS, P1, P2}, optional Lc and Data, and optional Le. The response APDU consists of optional Data followed by SW1 SW2. Short-length encodings use single-byte Lc/Le; extended-length encodings use three bytes. The four classical APDU cases are: Case 1 (no data, no Le), Case 2 (no data, Le), Case 3 (Lc+Data, no Le), and Case 4 (Lc+Data and Le).

The status words determine control flow. A terminal must treat any status outside success (90 00) and well-formed advisory responses (62xx/63xx) as a failure. A typical warning is 63 Cx indicating verification failed with x tries remaining. Selection failures return 6A 82 (file or DF not found). Parameter misuse often yields 6A 86 (incorrect P1/P2) or 6A 80 (incorrect data). Security preconditions are signaled by 69 82 (security status not satisfied) or 69 85 (conditions of use not satisfied).

4. BER‑TLV Discipline

EMV adopts BER‑TLV for the application data model. Tags may be one or more bytes, lengths use definite forms, and values are either primitive (opaque octet strings) or constructed (nesting further TLVs). The discipline is exacting: single-occurrence tags must not repeat in a given context; lengths must not exceed container boundaries; constructed/primitive forms are not interchangeable. EMV defines application templates such as 6F (FCI Template), A5 (FCI Proprietary Template), and 70 (EMV Record Template). A correct parser is strict: it rejects overlength values, duplicate singletons, and illegal forms and distinguishes normalizable encodings from canonical ones during certification testing.

5. Application Selection

Selection binds the terminal and card to a specific payment application. Two approaches are used.

The first is direct AID selection: the terminal issues SELECT by name with P1/P2 indicating name selection and first occurrence, the data field carrying the AID (RID + PIX, 5–16 bytes). The card returns an FCI with 84 (DF Name) and optionally 50 (Application Label), 9F12 (Application Preferred Name), and 9F38 (PDOL). The status 6A 82 indicates the requested AID is not present.

The second approach uses a directory: contact cards may implement PSE (1PAY.SYS.DDF01) and contactless cards implement PPSE (2PAY.SYS.DDF01). Selecting the directory yields directory records enumerating candidate AIDs and priorities. The terminal reads directory records with READ RECORD, extracts 4F (AID) and 87 (Priority), applies merchant/terminal policy, then performs direct AID selection. Absence of the directory mandates direct selection from terminal configuration.

The AID structure consists of a 5-byte RID (Registered Application Provider Identifier) and a scheme-specific PIX. Device configuration holds the terminal’s supported AIDs with parameters such as floor limits, terminal capabilities, CVM supports, and kernel options; selection succeeds only if the terminal implements the correct kernel for the chosen AID (especially for contactless).

6. Initiating Application Processing (GPO and PDOL)

After SELECT, the terminal initiates application processing with GET PROCESSING OPTIONS (GPO). If the FCI contained a PDOL (9F38), the terminal constructs a PDOL value in exactly the order and lengths specified by PDOL entries and wraps it in a 83 template as the data field of GPO. If PDOL is absent, the terminal may send an empty PDOL (83 00) or omit it per EMV rules. The card’s response is either 80 LL AIP(2) AFL(…​) or 77 LL [82 AIP] [94 AFL] …​. The AIP (Application Interchange Profile) announces capabilities such as offline data authentication support (SDA/DDA/CDA), cardholder verification options, and online processing capability. The AFL (Application File Locator) is a sequence of 4-byte items describing which records (record range and SFI) the terminal shall read.

7. Reading Application Data Correctly

For each AFL entry, the terminal performs a sequence of READ RECORD commands. The parameters are precise: P1 is the record number; P2 encodes the SFI in the high 5 bits and the record-access mode in the low 3 bits, compute P2 = (SFI << 3) | 0x04. Responses are wrapped in the 70 EMV Record Template holding TLVs such as 57 (Track 2 Equivalent), 5A (PAN), 5F24 (Expiry), 5F34 (PAN Sequence), 9F10 (Issuer Application Data), 8E (CVM List), 90 (Issuer Public Key Certificate), and ODA artifacts. Failure to read any record required by AFL is terminal error. The terminal aggregates these data for subsequent authentication, CVM selection, and risk analysis.

8. Offline Data Authentication (SDA, DDA, CDA)

EMV’s trust bootstraps from scheme Certification Authority (CA) public keys provisioned to terminals. The Issuer Public Key Certificate (on card) is verified against the CA key; the ICC Public Key Certificate is verified against the Issuer key. This chain authenticates the card’s public key for dynamic operations.

Static Data Authentication (SDA) verifies a signature over static application data. It proves issuer origination and data integrity but does not prevent cloning because the signature is static.

Dynamic Data Authentication (DDA) uses the ICC private key to sign a terminal-provided challenge and card-resident data via INTERNAL AUTHENTICATE. The terminal verifies this signature with the ICC public key, obtaining per-transaction freshness.

Combined DDA/Application Cryptogram (CDA) couples DDA with generation of the first application cryptogram. The response carries a dynamic signature that covers critical application data and binds to the AC, preventing man-in-the-middle modifications between dynamic authentication and cryptogram generation. CDA is preferred in modern profiles due to its superior integrity guarantees at minimal incremental latency on capable hardware.

9. Cardholder Verification Method (CVM)

The CVM List (8E) encodes ordered methods and conditions. The terminal selects the first method mutually supported and applicable given amount, terminal type, and results of offline authentication. Offline PIN (plaintext or enciphered) is used only on the contact interface; the VERIFY command conveys a PIN block that the card checks against the reference, updating the PIN try counter (9F17). Online PIN is verified by the issuer host rather than by the ICC. Signature requires merchant comparison and does not involve the ICC. For contactless, consumer-device verification methods (CDCVM) satisfied on a mobile device can fulfill the CVM requirement. The results contribute bits in TVR (Terminal Verification Results) and map into the card’s CVR (often present inside the Issuer Application Data).

10. Terminal and Card Risk Management

The terminal computes TVR based on outcomes of ODA, CVM, exception file checks, velocity, and amount limits. It enforces the acquirer-defined floor limit and online selection rules (including random selection). The card enforces issuer policy with Issuer Action Codes (IAC-Default, IAC-Denial, IAC-Online) and issuer risk limits (e.g., cumulative offline amount 9F50, offline spending limit 9F1B, and counters). The goal is a coherent Terminal Action Analysis and Card Action Analysis that converge to one of three paths: offline approve, go online, or offline decline.

11. GENERATE AC: Semantics and Construction

The first GENERATE AC requests the card to compute an application cryptogram over CDOL1-provided data. The terminal constructs the CDOL1 payload exactly in the tag order and lengths specified by 8C. Typical inputs include amount, other amount, terminal country code, transaction currency code, transaction date, transaction type, unpredictable number, TVR, TSI, terminal capabilities, additional terminal capabilities, and terminal type. The command header 80 AE carries request semantics via the CID request bits; in practice, the terminal requests ARQC for online or TC for offline approval.

The response is returned as a TLV set (often in 77). It contains the Application Cryptogram (9F26), the Cryptogram Information Data (9F27), the ATC (9F36), and the Issuer Application Data (9F10). The cryptogram is a MAC-like value computed under a session key derived from issuer master keys and the ATC; historically, 3DES retail MAC algorithms were used, while contemporary designs can employ AES CMAC where supported. The CID value encodes whether the returned cryptogram is ARQC (request online), TC (offline approval), or AAC (decline). The card may override the terminal’s request based on IAC evaluation and internal limits.

12. Online Authorization and Issuer Authentication

When ARQC is returned, the terminal packages EMV data in ISO 8583 field DE55 (EMV data field) and submits an authorization request via the acquirer to the issuer. The issuer validates the ARQC using card-specific keys, evaluates account and fraud risk, and returns an authorization decision. It may include Issuer Authentication Data (91, commonly the ARPC) and Issuer Scripts (71/72). Issuer authentication is executed either explicitly via EXTERNAL AUTHENTICATE or implicitly by including 91 in CDOL2 for the second GENERATE AC. A correct card will validate ARPC and refuse completion if issuer authentication fails or scripts are tampered with. Issuer scripts execute as secure commands authenticated by issuer script keys and allow post-issuance management (e.g., setting counters, blocking applications, updating parameters).

13. Completion: Second GENERATE AC

The second GENERATE AC consumes CDOL2 data (including the authorization response code and, if applicable, issuer authentication artifacts) and returns the final cryptogram: TC if approved or AAC if declined. The ATC is updated accordingly. The terminal performs any required script processing and reports script results upstream. For some legacy host protocols, a post-completion “EMV Final Advice” leg is sent to synchronize the terminal and host state with the final cryptogram and issuer authentication outcome.

14. APDU Details and Exemplars

14.1. APDU Structures and Cases

Command APDU (generic)
CLA | INS | P1 | P2 | [Lc] | [Data...] | [Le]
Response APDU (generic)
[Data...] | SW1 SW2

The following sections provide concise exemplars with explanatory annotations. The values are illustrative and not taken from a live card.

14.2. SELECT by DF Name (AID)

>> 00 A4 04 00 07 A0 00 00 00 03 10 10 00
<< 6F 2A
   84 07 A0 00 00 00 03 10 10
   A5 1D
      50 04 56 49 53 41
      9F 38 06 9F 1A 02 5F 2A 02
      5F 2D 02 65 6E
   90 00

The FCI Template (6F) embeds the DF Name (84), FCI Proprietary Template (A5), the Application Label (50), PDOL (9F38), and Language Preference (5F2D).

14.3. GET PROCESSING OPTIONS (with PDOL)

Suppose PDOL is 9F1A 02 5F2A 02 9A 03 9C 01 9F37 04 (Terminal Country Code, Transaction Currency, Date, Type, Unpredictable Number). The terminal concatenates values in that order without tags/lengths, wraps in 83, and issues GPO:

>> 80 A8 00 00 0D 83 0B 03 56 03 56 25 08 11 00 12 34 56 78 00
<< 80 0A 82 02 38 00 94 04 10 01 01 00 90 00

The 82 AIP indicates capabilities; the 94 AFL instructs record reads.

14.4. READ RECORD (per AFL)

If an AFL entry indicates SFI 2, records 1..1, then P2 = (2 << 3) | 4 = 0x14:

>> 00 B2 01 14 00
<< 70 3A
   5A 08 41 23 60 09 00 12 34
   5F 24 03 25 12 31
   5F 34 01 01
   57 13 41 23 60 09 00 12 34 D2 51 23 45 67 89 01 23 45 F
   8E 0E ... CVM List ...
   9F 10 07 ... IAD ...
   90 00

The track equivalent 57 encodes PAN, expiry, and service code with D as separator.

14.5. VERIFY (offline PIN, contact only)

>> 00 20 00 80 08 24 12 34 FF FF FF FF
<< 90 00            ; success (example)

The PIN block format and encipherment depend on CVM specifications and key material. A wrong PIN typically returns 63 CX where X is remaining tries. The try counter is readable via GET DATA (80 CA 9F 17 00).

14.6. GENERATE AC (first, request ARQC)

>> 80 AE 00 00 2B <CDOL1-data...> 00
<< 77 1C
   9F 27 01 80              ; CID = ARQC
   9F 26 08 1A 2B 3C 4D 5E 6F 70 81
   9F 36 02 01 2C
   9F 10 07 ... IAD ...
   90 00

The 9F26 cryptogram is validated by the issuer with keys derived from PAN, PSN, and ATC.

14.7. EXTERNAL AUTHENTICATE (issuer authentication, variant)

>> 00 82 00 00 10 <Issuer Auth Data (tag 91 bytes)> 00
<< 90 00

Modern profiles frequently supply 91 in CDOL2 instead and omit this explicit step.

14.8. GENERATE AC (second, completion)

>> 80 AE 00 00 0F <CDOL2-data...> 00
<< 77 12
   9F 27 01 40              ; CID = TC
   9F 26 08 9A BC DE F0 12 34 56 78
   9F 36 02 01 2D
   90 00

The TC cryptogram binds the approval to card, terminal, and transaction parameters.

15. Cryptographic Architecture (EMV Book 2 Perspective)

The online authentication anchor is the ARQC, a MAC-like value computed under a session key derived from issuer master keys. A common derivation uses the ATC combined with card identifiers to derive the unique session key from the issuer’s per-card master key (for example, a 3DES key diversification with left/right halves based on ATC). The MAC over CDOL1 inputs and selected card/terminal parameters yields the ARQC. The issuer recomputes the expected ARQC from DE55 to authenticate the request.

The issuer response contains the Authorization Response Code (ARC) and optionally the ARPC. A widespread ARPC construction is to transform the ARQC under the session key with ARC embedded (for example, XOR of a two-byte ARC into a defined block position prior to MACing) to produce a value the card can verify with its session key. A verified ARPC assures the ICC that the issuer approved the transaction and that the response is fresh and authentic. If ARPC verification fails, the ICC must not produce TC in the second GENERATE AC.

Offline data authentication relies on RSA public-key cryptography. Certificate formats in EMV are compact encodings tailored to smart cards, carrying moduli and exponents within constrained lengths and including hashes and padding conforming to EMV’s variants of ISO 9796/PKCS #1 conventions for legacy deployments. CDA’s signature covers dynamic fields and the application cryptogram request/response context, preventing “wedge” attacks that alter terminal-provided inputs between dynamic authentication and AC generation.

16. Contactless Specifics and Outcome Semantics

Contactless profiles reuse the same APDU vocabulary with kernel-specific behavior. PPSE (2PAY.SYS.DDF01) selection is mandatory; the Terminal Transaction Qualifiers (9F66) dictate support for magstripe-mode fallbacks, EMV-mode processing, and CVM capabilities. Offline PIN is excluded on RF; privacy considerations often omit 5F20 (Cardholder Name). Timers are strict, influencing retry logic and field durations. Outcome parameter sets inform the terminal’s user interface without additional card APDUs. Mobile wallets introduce DPAN tokenization and CDCVM, reducing PAN exposure and shifting cardholder verification to the secure element or device trust zone while preserving EMV cryptographic assurances at tap time.

17. Host Messaging (ISO 8583) and DE55

The acquirer message includes DE55 carrying a BER‑TLV subset of EMV data: typical elements are 9F26 (AC), 9F27 (CID), 9F10 (IAD), 9F37 (UN), 9F36 (ATC), 95 (TVR), 9A (Date), 9C (Type), 9F02 (Amount), 5F2A (Currency), 82 (AIP), and 9F1A (Country Code). The issuer host reproduces the CDOL context from DE55 to validate ARQC and to decide whether to return 91 (Issuer Authentication Data) and scripts. Mapping of PAN, expiry, service code, and track data aligns with DE2/DE14/DE35/DE45 as permitted by scheme rules; PIN data, if online, is carried in DE52 (encrypted under acquirer/issuer PIN keys).

18. Engineering Checklists for Correctness

Robust implementations share several invariants. TLV parsing is strict, with canonical acceptance and defensive rejection of malformed values. PDOL/CDOL order is honored literally; missing tags are filled with zeroes only where the specification permits and never omitted silently. READ RECORD P2 is computed as (SFI<<3)|0x04, and the terminal respects the AFL record boundaries. Unpredictable Numbers are high-quality random values to the bit-length required by the profile; low-entropy UNs cause certification failures and enable replay lab attacks. CVM selection is faithful to 8E semantics; offline PIN is never attempted on contactless. EXTERNAL AUTHENTICATE is issued only if the AIP indicates support; otherwise, 91 is provided via CDOL2. Logging avoids sensitive fields: full PAN, track data, IAD, cryptograms, and keys are never persisted, and all traces use lab data during integration and certification.

19. Security Analysis Themes

EMV mitigates cloning by binding approvals to transaction-unique cryptograms. It reduces cardholder impersonation with PIN and CDCVM. It constrains offline risk via issuer-configured counters and limits and forces online reviews on suspicious patterns. Attack classes to consider include relay attacks (extending RF range to misuse genuine cards), terminal compromise (PIN pad malware or key extraction), and protocol downgrades (switching kernels/modes). Defenses include anti-relay distance‑bounding for future contactless enhancements, PCI PTS-compliant cryptographic modules for PIN entry, strict kernel configuration (e.g., disallow MSD-mode when EMV-mode is supported), and telemetry for issuer risk engines. The combination of asymmetric trust bootstrapping and symmetric per-transaction authentication has empirically displaced counterfeit card fraud in EMV‑adopted regions.

20. Compact Reference of Core Tags (Selected)

Tag Name Synopsis

4F

Application Identifier (AID)

RID+PIX (5–16 bytes), also appears as DF Name (84).

50

Application Label

ASCII label for display.

82

Application Interchange Profile (AIP)

Bitmap of card capabilities (ODA, CVM, online).

94

Application File Locator (AFL)

List of (SFI, first, last, offline-auth) entries.

57

Track 2 Equivalent Data

PAN, expiry, service code, discretionary data.

5A

PAN

Primary Account Number (numeric BCD, odd-nibble padded).

5F24

Application Expiration Date

YYMMDD.

5F34

PAN Sequence Number

Differentiates multiple cards for same account.

8E

CVM List

Ordered methods and conditions.

95

Terminal Verification Results (TVR)

Five bytes of verification outcomes.

9B

Transaction Status Information (TSI)

Two bytes of performed processing.

9F10

Issuer Application Data (IAD)

Issuer-defined contents; often includes CVR.

9F26

Application Cryptogram

ARQC/TC/AAC value (8 bytes typical).

9F27

Cryptogram Information Data (CID)

Type of cryptogram and flags.

9F36

Application Transaction Counter (ATC)

Monotonic counter incremented per AC.

9F37

Unpredictable Number

Terminal-provided challenge.

9F33

Terminal Capabilities

CVM, data, and security capabilities.

9F35

Terminal Type

Environment classification.

9F40

Additional Terminal Capabilities

Extended terminal feature bits.

9F1A

Terminal Country Code

ISO numeric country code.

5F2A

Transaction Currency Code

ISO numeric currency code.

91

Issuer Authentication Data

ARPC or related issuer auth bytes.

71/72

Issuer Script Templates

Secure post-issuance commands to ICC.

9F17

PIN Try Counter

GET DATA returns remaining tries.

9F13

Last Online ATC Register

GET DATA returns last online ATC.

21. Worked Mini‑Trace (Didactic)

This condensed trace demonstrates a nominal online EMV transaction over contact. Values are illustrative.

; SELECT AID
>> 00 A4 04 00 07 A0 00 00 00 03 10 10 00
<< 6F ... A5 ... 9F38 06 9F1A 02 5F2A 02 ... 90 00

; GPO (TCC=0356, CUR=0356, Date=25-08-11, Type=00, UN=11223344)
>> 80 A8 00 00 0D 83 0B 03 56 03 56 25 08 11 00 11 22 33 44 00
<< 80 ... 82 02 38 00 94 04 10 01 01 00 90 00

; READ RECORD (SFI=2, rec=1)
>> 00 B2 01 14 00
<< 70 ... 57 ... 5A ... 8E ... 9F10 ... 90 00

; GENERATE AC (request ARQC)
>> 80 AE 00 00 2B <CDOL1> 00
<< 77 ... 9F27 01 80  9F26 08 <ARQC>  9F36 02 <ATC>  9F10 .. <IAD> 90 00

; Online → Issuer returns ARC=00, ARPC in 91, optional scripts

; EXTERNAL AUTHENTICATE (variant) or include 91 in CDOL2
>> 00 82 00 00 10 <91> 00
<< 90 00

; GENERATE AC (completion, expect TC)
>> 80 AE 00 00 0F <CDOL2> 00
<< 77 ... 9F27 01 40  9F26 08 <TC>  9F36 02 <ATC+1> 90 00

22. Implementation Notes and Failure Semantics

A parser should reject ambiguous TLV encodings and detect length overruns promptly. The UN must be unpredictable to the card; do not use counters or timestamps without cryptographic randomization. The terminal must not silently elide PDOL elements: if a PDOL entry is unknown, EMV permits sending a zero-filled value of the specified length rather than omitting the field. Missing AFL records are a terminal error, not a recoverable condition. CVM failures set TVR bits and generally preclude offline approval. Issuer Authentication failure must prevent TC at completion. Logs exclude sensitive data: mask PAN, never store Track 2, IAD, cryptograms, or any keys.

23. Advanced Topics

23.1. Certificate Formats and Key Lifecycles

EMV certificates are optimized for constrained media. The issuer certificate binds the issuer public key to the scheme’s CA through an RSA signature with an EMV-defined padding and a profile‑specific hash. ICC certificates bind the card’s public key to the issuer public key. Terminals embed CA public keys loaded securely by the acquirer or vendor. Certificate expiration and key length transitions are governed by scheme bulletins; terminals must be updatable to accept new CA keys and reject deprecated ones.

23.2. ARQC/ARPC Mathematics (Abstract)

Let \$K_M\$ be the issuer’s per‑card master key and \$ATC\$ the transaction counter. Session keys \$K_S\$ are derived from \$K_M\$ and \$ATC\$ via a diversification function \$f\$ (for example, 3DES key left/right halves derived from \$ATC\$||parity). The ARQC equals \$\mathrm{MAC}_{K_S}(M)\$ where \$M\$ concatenates CDOL1 inputs and context fields with standardized padding. The issuer rebuilds \$M\$ from DE55 and verifies the tag‑length‑ordered composition. The ARPC is computed as a transformation of ARQC under \$K_S\$ with ARC embedded per EMV Book 2 annex logic. The ICC verifies ARPC with \$K_S\$ and rejects completion on mismatch.

23.3. CDA Binding and Wedge Resistance

CDA signs a structure that includes terminal‑supplied fields, the unpredictable number, and the AC context, ensuring integrity from the moment of dynamic authentication to AC issuance. This prevents an attacker from substituting inputs between steps, a class of attacks that DDA alone cannot completely preclude if protocol timing is abused.

23.4. Contactless Kernel Nuances

The Terminal Transaction Qualifiers (9F66) govern kernel paths: EMV mode versus MSD‑like mode, CVM allowances, and online requirements. Timing budgets and maximum frame sizes mandate efficient PDOL construction and minimal APDU retries. Privacy guidance recommends omitting 5F20; CDCVM satisfaction flags are propagated to terminal outcome parameters rather than an explicit APDU exchange.

24. Conclusion

EMV’s discipline is the product of a conservative APDU abstraction, strict BER‑TLV data modeling, a layered authentication and authorization pipeline, and issuer‑configurable risk controls. Its effectiveness against cloning arises from transaction‑unique symmetric cryptograms verifiable by issuers, while its resilience against cardholder impersonation follows from robust CVM choices, particularly offline/online PIN and device CVM in mobile wallets. Correctness hinges on exact PDOL/CDOL conformance, strict TLV parsing, precise AFL traversal, high‑entropy unpredictability, and careful handling of issuer authentication and scripts. Implementations that respect these invariants achieve both interoperability and strong security assurances in the presence of realistic adversaries.

25. References

  1. EMVCo. EMV Integrated Circuit Card Specifications for Payment Systems (Books 1–4). Primary specification index. https://www.emvco.com/emv-technologies/emv-icc-specification/

  2. EMVCo. ECC Worked Examples for EMV Book 2 (Security and Key Management). Official companion material. https://www.emvco.com/emv-technologies/ecc-worked-examples-book-2/

  3. EMVCo. EMV Contactless Kernel Specification — Publication Announcement. Overview of the consolidated contactless kernel. https://www.emvco.com/emv-technologies/contactless/

  4. EMVCo. EMV Contactless Chip — Technology Overview. High-level contactless guidance. https://www.emvco.com/emv-technologies/contactless/

  5. ISO/IEC 7816-4:2020. Identification cards — Integrated circuit cards — Part 4: Organization, security and commands for interchange. https://www.iso.org/standard/73506.html

  6. ISO/IEC 7816-3:2006 (+ Amd.1:2025). Identification cards — Integrated circuit cards — Part 3: Cards with contacts — Electrical interface and transmission protocols. https://www.iso.org/standard/39493.html

  7. ISO/IEC 14443-2:2020. Cards and security devices for personal identification — Contactless proximity objects — Part 2: RF power and signal interface. https://www.iso.org/standard/73552.html

  8. ISO/IEC 14443-3:2016. Cards and security devices for personal identification — Contactless proximity objects — Part 3: Initialization and anticollision. https://www.iso.org/standard/73553.html

  9. ISO/IEC 14443-4:2016. Cards and security devices for personal identification — Contactless proximity objects — Part 4: Transmission protocol. https://www.iso.org/standard/73554.html

  10. ISO 8583:2023. Financial-transaction-card-originated messages — Interchange message specifications. https://www.iso.org/standard/85723.html

  11. Visa. Quick Chip for EMV — Specification v1.2. https://usa.visa.com/dam/VCOM/global/support-legal/documents/quick-chip-for-emv-specification.pdf

  12. American Express. Amex Quick Chip — Technical Manual. https://www.americanexpress.com/content/dam/amex/us/merchant/pdf/amex-quick-chip.pdf

  13. Visa. Transaction Acceptance Device Guide (TADG), v3. https://www.visa.com/supplementary-material/tadg.html

  14. Mastercard. M/Chip Payment System Public Keys — Guidance. https://www.mastercard.com/global/en/issuers/mchip-public-keys.html

  15. PCI Security Standards Council. PTS POI Modular Security Requirements v6.1. https://www.pcisecuritystandards.org/document_library

  16. PCI Security Standards Council. PIN Security — Program Overview. https://www.pcisecuritystandards.org/pin

  17. PCI Security Standards Council. PIN Security Requirement 18-3 — Key Blocks. https://www.pcisecuritystandards.org/documents/PCI_PIN_Security_Requirement_18-3_Key_Blocks.pdf

  18. GlobalPlatform. Card Specification v2.3.1. https://globalplatform.org/specs-library/card-specification-v2-3-1/