Skip to content

BALTECH standard card structure

This applies to MIFARE DESFire cards only.

The BALTECH standard card structure is a ready-made card layout optimized for access control. It covers many common applications and follows security best practices.

If you don't have special requirements regarding the card structure, we recommend you order a job file with the BALTECH standard card structure.

This page documents the card structure so that, together with the keys provided by BALTECH, you can configure your reader to read the programmed card number (PCN).

Overview

The card structure includes the following components:

Component Purpose
PICC-level settings Card-level encryption and master keys
Application 1 Access control with non-diversified keys
Application 2 Access control with diversified keys (higher security)
Application 3 Reserved for future applications

PICC-level settings

The card itself is configured with the following security settings:

  • AES encryption for all communication
  • PICC master key (Key 0) for card-level administration
  • EV2 DAM keys (Keys 1–3) for Delegated Application Management (authentication, MAC, and encryption)
  • Creation of new applications is only possible following prior authentication with the PICC master key.

All PICC-level keys are set to project-specific values by BALTECH.

Application 1 – access control (non-diversified keys)

AID: Project-specific, provided by BALTECH.

This application stores the Card ID in 5 separate files, each protected by its own key pair. This allows you to grant different users or systems access to the same Card ID independently.

File structure

Each of the 5 files is a standard data file containing the Card ID in 3 encodings:

Encoding Description
BCD 5 bytes, binary-coded decimal
ASCII 10 bytes, human-readable text
Binary 5 bytes, raw binary

The remaining 12 bytes per file are filled with random data for additional security.

Key assignments

Key Role Description
Key 0 Application master key Full application access
Key 1 Change key Allows changing other keys
Key 2 Rolling key Used internally
Key 3 Read key (File 0) Read access to Card ID
Key 4 Read/write key (File 0) Read and write access to Card ID
Key 5 Read key (File 1) Read access for alternative user 1
Key 6 Read/write key (File 1) Read and write access for alternative user 1
Key 7 Read key (File 2) Read access for alternative user 2
Key 8 Read/write key (File 2) Read and write access for alternative user 2
Key 9 Read key (File 3) Read access for alternative user 3
Key 10 Read/write key (File 3) Read and write access for alternative user 3
Key 11 Read key (File 4) Read access for alternative user 4
Key 12 Read/write key (File 4) Read and write access for alternative user 4

All key values are set per project by BALTECH. Creation and deletion of files within this application is disabled.

Application 2 – access control (diversified keys)

AID: Project-specific, provided by BALTECH.

This application has the same structure as Application 1 (same files, same key roles), but all keys are diversified according to NXP AN10922, using a project-specific system identifier.

Key diversification means that each card has unique key values derived from a master key and the card's UID. This provides higher security because compromising a single card's keys does not reveal the master key or the keys of other cards.

Application 3 – reserved for future use

AID: Project-specific, provided by BALTECH.

This is an empty application with 5 keys (Key 0–4), prepared for future use cases such as canteen payment, secure login, or other applications. No files are configured by default.

When you're ready to use this application, contact us to have it set up for your specific use case.

Card numbering

Each card is assigned a unique 5-digit programmed card number (PCN) within the range 10000–99999. This number is:

  • Stored in each data file in BCD, ASCII, and binary encoding
  • Printed on the card as a label

PCNs are assigned consecutively and cannot be skipped or reused.

Configuring your reader to read the PCN

To configure the reader to read the programmed card number (PCN) from an application, we recommend you create a configuration using Autoread Wizard. In the RFID Interface section of the wizard, select MIFARE DESFire and Programmed Card Number.

Screenshot: Select "MIFARE DESFire" and "Programmed Card Number" in the Autoread Wizard of BALTECH ConfigEditor

After finishing the wizard, enter the following values in the configuration component Autoread MIFARE DESFire Number in File.

Screenshot: Component "Autoreaad MIFARE DESFire Number in File" in BALTECH ConfigEditor

Application 1 – non-diversified keys

Configuration field Value
Application ID (AID) Provided by BALTECH
File Number 0
PCN Start Position 0
PCN Length 5
File is Protected with a Key enabled
Encryption Algorithm AES
Key Number 3
Read Key Provided by BALTECH
Diversify Read Key disabled
Communication Settings Encrypted
PCN Encoding BCD

Alternative files

Files 1–4 in this application contain the same PCN but are protected by separate key pairs (Keys 5–12), allowing different systems or users to read the same card independently. Adjust the file number and key number accordingly.

Application 2 – diversified keys

Use the same values as for Application 1 above, with one difference:

Configuration field Value
Key Provided by BALTECH (diversification master key)
Diversify Ready Key enabled
Diversification Data Input Provided by BALTECH

Key diversification (NXP AN10922) generates a unique per-card key derived from the master key and the card's UID.

Title