SCP03

Software
{# Answer-first lead — frontend-gold-standard §1.1. Expects `lead` (plain text, already resolved by apps.content.leads). Rendered directly under the h1 so the self-contained answer is the first prose a reader, a SERP snippet, or an AI extractor meets. No curated-data gate: the view always supplies either curated content_summary or a computed fallback. #}

Secure Channel Protocol 03 is the current-generation GlobalPlatform protocol for authenticated, encrypted management traffic between a host application and a smart card, replacing the 3DES-based SCP02 with AES for both confidentiality and integrity. A session opens with a three-step mutual authentication handshake: the host sends a random challenge in INITIALIZE UPDATE; the card replies with its own challenge, a key diversification value, and a card cryptogram computed as an AES-CMAC over both challenges under the session MAC key; the host verifies that cryptogram in EXTERNAL AUTHENTICATE, derives the session keys, and returns a host cryptogram for the card to verify. Thereafter every APDU is wrapped with AES-CMAC integrity and optionally AES-CBC encryption. Three session keys are derived from the static card keys by the AES key-derivation function of NIST SP 800-108: S-ENC for data encryption and S-MAC for command integrity.

Embed This Widget

Theme


      
    

Widget powered by . Free, no account required.

Also known as: Secure Channel Protocol 03

SCP03

Secure Channel Protocol 03 (AES-based secure channel protocol." data-category="Software">SCP03) 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 3DES-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 diversification 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.

{# FAQ block + FAQPage JSON-LD. Expects `faq_items` = [{"question", "answer"}]. Native
/ (frontend-gold-standard §1.7): the answer text is in the initial HTML and stays reachable with JavaScript disabled, so crawlers and AI extractors read answer-shaped chunks without depending on Alpine. #}

Frequently Asked Questions

How does SCP03 differ from SCP02?

SCP03 replaces the 3DES basis of SCP02 with AES for both encryption and integrity protection. Session keys derive through the AES-based key derivation function of NIST SP 800-108, command integrity uses AES-CMAC, and command data encryption uses AES-CBC.

What happens during an SCP03 handshake?

The handshake runs in three steps. INITIALIZE UPDATE sends a random host challenge, and the card returns its own challenge, a key diversification value, and a card cryptogram computed as an AES-CMAC over both challenges. EXTERNAL AUTHENTICATE follows: the host verifies the card cryptogram, derives session keys, and sends a host cryptogram for the card to verify. Subsequent APDUs travel inside the established secure session.

Which session keys does SCP03 derive?

Three keys derive from the static card keys: S-ENC encrypts command and response data under AES-CBC, S-MAC provides integrity protection through AES-CMAC, and a third key protects response MACs.

What is the smart card glossary and who is it for?

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.

Are the glossary definitions available in other languages?

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.