Disclosure: As an Amazon Associate, CardWise earns from qualifying purchases at no additional cost to you. This does not affect our recommendations.
MIFARE Plus vs MIFARE DESFire — Which AES Card for Access Control?
If you are upgrading from MIFARE Classic, you face a fork in the road: MIFARE Plus or MIFARE DESFire. Both are NXP products. Both support AES-128 encryption. Both are ISO 14443-compliant. But they have fundamentally different design philosophies — Plus is a drop-in security upgrade for existing Classic infrastructure, while DESFire is a general-purpose secure microcontroller with a file-system application model.
The choice matters because it affects reader compatibility, key management complexity, card personalization, and future flexibility. This comparison covers encryption architecture, key diversification, UID handling, application model, SAM integration, and deployment cost.
Core Architecture Differences
| Feature | MIFARE Plus | MIFARE DESFire EV2/EV3 |
|---|---|---|
| Design Goal | Secure replacement for MIFARE Classic | General-purpose secure IC with file system |
| Crypto | AES-128 | AES-128 (EV2/EV3), DES/3DES (EV1) |
| Storage Model | Sectors (like Classic, 16 or 40 sectors) | Applications → Files (hierarchical, up to 28 apps) |
| Command Set | Proprietary (MIFARE protocol) | ISO 7816-4 (APDU-based) |
| UID | 4/7/10-byte, configurable random UID | 7-byte UID, random UID mode |
| Backward Compatibility | SL1 mode = MIFARE Classic behavior | None — different protocol entirely |
| App Flexibility | Fixed sector/key structure | Multiple apps, file types, flexible permissions |
| Security Levels | SL1 (Classic), SL3 (AES) | EV1, EV2, EV3 (progressive security) |
Security Levels Explained
MIFARE Plus Security Levels
MIFARE Plus operates in three security levels, allowing phased migration:
- SL1 (Legacy): Behaves exactly like MIFARE Classic. Uses Crypto-1 stream cipher (broken). This mode exists for backward compatibility only — it provides no real security.
- SL3 (AES): Full AES-128 encryption with mutual authentication. This is the secure operating mode. The card and reader authenticate each other using diversified AES keys before any data exchange.
- SL0: Initial state before personalization. Cards ship in SL0 and are configured to SL1 or SL3 during personalization.
DESFire Evolution
- EV1: DES/3DES encryption. Legacy, should be avoided for new deployments.
- EV2: AES-128 with secure messaging (ISO 7816-4). Adds ISO/IEC 7816-4 compatible APDU interface and AES-CMAC integrity.
- EV3: Adds ECDH (Elliptic Curve Diffie-Hellman) key agreement for secure channel setup, AES-128 CMAC, and faster transaction processing. Also includes a transaction timer for anti-tapping protection.
Key Diversification & Mutual Authentication
Both cards use per-card key diversification, but the mechanisms differ:
MIFARE Plus Key Diversification
The card's master AES key is diversified using the card's UID. The reader (or SAM) computes the diversified key as:
K_div = AES-128(K_master, UID || padding)
During mutual authentication, both the card and reader prove knowledge of K_div without revealing it. This means each card has a unique key — compromising one card does not compromise the system. A SAM (Secure Access Module) in the reader typically holds the master key and performs diversification in hardware.
DESFire Key Management
DESFire uses a multi-application, multi-key model. Each application can have up to 14 keys, each with a specific role (master, read, write, change). Keys are diversified per card using the card's UID, similar to Plus. EV3 adds ECDH key agreement, allowing the reader and card to establish a shared session key without pre-shared application keys — this is more flexible for multi-tenant systems.
UID Handling & Privacy
| UID Property | MIFARE Plus | DESFire EV2/EV3 |
|---|---|---|
| UID Length | 4, 7, or 10 bytes | 7 bytes |
| Random UID Mode | Yes — card emits random ID per session | Yes — random ID per activation |
| UID in Traceability | Fixed UID in sector 0 (SL1 only) | Fixed UID readable only after auth |
| Privacy Risk | SL1 exposes fixed UID; SL3 hides it | Random UID by default in privacy mode |
Random UID mode is critical for privacy. Without it, the card's fixed UID can be read by any NFC reader within range, enabling tracking. Both cards support random UID, but MIFARE Plus in SL1 mode (Classic compatibility) exposes the fixed UID — this is a known weakness of the backward-compatibility mode.
Application Model: Sectors vs Files
MIFARE Plus: Sector-Based Storage
Plus inherits Classic's 16-sector (1K) or 40-sector (4K) structure. Each sector has two keys (A and B) and access conditions. Data is stored in fixed 16-byte blocks. This model is simple but rigid — you cannot create "applications" or change the sector structure. If you need to store multiple independent datasets (e.g., access control + e-purse + vending), you allocate sectors manually.
DESFire: File-System Application Model
DESFire uses a hierarchical model: Card → Applications → Files. You can create up to 28 applications, each with its own key set and file structure. Files can be standard, backup, value, or cyclic. This is far more flexible for multi-application deployments — a single card can hold an office access credential, a transit pass, and a vending e-purse, each isolated with separate keys.
SAM Integration
Both cards are designed to work with NXP SAM (Secure Access Module) chips in the reader:
- MIFARE Plus + SAM AV2/AV3: The SAM stores the master AES key and performs diversification and mutual authentication in hardware. The reader's microcontroller never sees the key. The SAM also provides a secure channel for key updates.
- DESFire + SAM AV3: Same SAM hardware, but the SAM also manages the multi-application key tree. For EV3, the SAM can perform ECDH key agreement to establish session keys dynamically.
ACR122U NFC Reader — Supports both MIFARE Plus and DESFire via PC/SC. Ideal for testing card authentication flows and key diversification in your access control deployment.
— Check Price on Amazon
Which Card Should You Choose?
✔ MIFARE Plus is the right choice if…
- You are migrating from MIFARE Classic. Plus in SL1 mode works with existing Classic readers. You can upgrade readers to support SL3 (AES) gradually, then switch cards to SL3 mode.
- You have a single application (access control only). The sector model is sufficient and simpler to manage.
- Your readers are MIFARE Classic-compatible. DESFire requires entirely new reader firmware/hardware.
✔ DESFire is the right choice if…
- You need multiple applications on one card. The file-system model supports transit + access + e-purse with isolated key sets.
- You are building a new system from scratch. No legacy Classic infrastructure to maintain — go straight to the most flexible architecture.
- You need ISO 7816-4 APDU compatibility. DESFire's command set integrates with standard smart card frameworks and reader middleware.
- You want EV3 ECDH key agreement. For multi-tenant or multi-operator systems where pre-sharing keys is impractical.
Cost Comparison
| Cost Factor | MIFARE Plus | DESFire EV2/EV3 |
|---|---|---|
| Card unit cost (volume) | $0.50–$1.20 | $1.00–$2.50 |
| Reader cost | Lower (Classic-compatible readers) | Higher (APDU-capable readers) |
| Migration cost | Low (phased: SL1 → SL3) | High (replace all readers) |
| Personalization | Simpler (sector keys) | More complex (app/file/key tree) |
Related Comparisons
- HID iCLASS vs MIFARE DESFire — proprietary vs open-standard access card ecosystems
- MIFARE Card Family Comparison — Classic, Plus, DESFire, Ultralight compared
- ISO 14443 vs ISO 15693 — high-frequency RFID standard differences
- DESFire EV2 vs EV3 — detailed comparison of security features
Summary
MIFARE DESFire is the architecturally superior choice for new deployments. Its file-system application model, ISO 7816-4 APDU interface, and EV3 ECDH key agreement make it suitable for multi-application, multi-operator smart card ecosystems. You pay more per card and reader, but gain flexibility and future-proofing.
Need to inspect MIFARE card data? Try our APDU Builder or the MIFARE Access Bits Calculator.