SCP03

Software

Secure Channel Protocol 03 -- GlobalPlatform protocol using AES for secure communication between card and host.

Aussi connu sous le nom de: Secure Channel Protocol 03

SCP03

Secure Channel Protocol 03 (SCP03SCP03SoftwareAESAESCryptographyNIST symmetric block cipher for smart card encryption.Click to view →-based secure channel protocol.Click to view →) is the current-generation secure communication protocol defined by GlobalPlatform for authenticated and encrypted management operations between a host application and a smart card. Replacing the legacy 3DES3DESCryptographyLegacy triple-DES symmetric cipher in payment smart cards.Click to view →-based SCP02, SCP03 uses AES for both encryption and integrity protection, providing a modern cryptographic foundation for applet installation, key management, and card lifecycle operations.

Protocol Flow

An SCP03 session is established through a three-step mutual authentication handshake:

  1. INITIALIZE UPDATE: The host sends a random challenge. The card responds with its own challenge, a key diversificationkey diversificationSecurityDeriving unique per-card keys from a master key.Click to view → value, and a card cryptogram (AES-CMAC over both challenges using the session MAC key).
  2. EXTERNAL AUTHENTICATE: The host verifies the card cryptogram, derives session keys, and sends a host cryptogram. The card verifies the host cryptogram to complete mutual authentication.
  3. Secure Session: All subsequent APDUs are wrapped with AES-CMAC integrity and optionally AES-CBC encryption.

Session Key Derivation

SCP03 derives three session keys from static card keys using the AES-based KDF specified in NIST SP 800-108:

Session Key Purpose
S-ENC Encryption of command and response data (AES-CBC)
S-MAC Integrity protection via AES-CMAC (command APDUs)
S-RMAC Response integrity via AES-CMAC (response APDUs)

The derivation uses the host challenge, card challenge, and a key derivation constant, ensuring unique session keys for every authenticated session. Static card keys are never used directly for data protection.

Security Levels

SCP03 supports three security levels, selectable per session:

Level Protection
C-MAC Command integrity only
C-MAC + C-DECRYPTION Command integrity + encryption
C-MAC + C-DECRYPTION + R-MAC Full bidirectional protection

Most production deployments use full bidirectional protection (C-MAC + C-DECRYPTION + R-MAC) for applet loading and key rotation operations, as both the command data (applet code, new keys) and response data (status, confirmations) are security-sensitive.

SCP03 vs SCP02

Feature SCP02 (Legacy) SCP03 (Current)
Cipher 3DES AES-128/192/256
MAC algorithm DES-CBC MAC AES-CMAC (NIST SP 800-38B)
Key derivation DES-based AES KDF (NIST SP 800-108)
Response integrity Not available R-MAC supported
Pseudo-random generation DES-based AES-CTR DRBG

SCP03 is mandatory for new GlobalPlatform deployments. The migration from SCP02 is particularly important for SIM cards and eSIM platforms where GSMA SAS certification increasingly requires AES-based secure channels.

Questions fréquemment posées

The smart card glossary is a comprehensive reference of technical terms, acronyms, and concepts used in smart card technology. It covers protocols (APDU, T=0, T=1), security (Common Criteria, EAL, HSM), hardware (SE, EEPROM, contact pad), and applications (EMV, ePassport, eSIM). It serves developers, product managers, and engineers.

Yes. SmartCardFYI provides glossary definitions in 15 languages including English, Korean, Japanese, Chinese, Spanish, Portuguese, Hindi, Arabic, French, Russian, German, Turkish, Vietnamese, Indonesian, and Thai.