NXP Miafre 1 S50感應式IC卡相關知識
簡介
NXP Miafre 1 S50感應式IC卡是NXP旗下的一款應用非常廣泛的非接觸式IC卡,其主要電氣特征如下:
芯片: Philips Mifare 1 S50
存儲容量:8Kbit,16個分區,每分區兩組密碼
工作頻率:13.56 MHz
通訊速率:106KBoud
讀寫距離:2.5~10cm
讀寫時間:1~2ms
工作溫度:-20℃~85℃
擦寫壽命:>100,000次
數據保存:>10年
外形尺寸:ISO標準卡 85.6x54x0.80 / 厚卡 / 異形卡
封裝材料:PVC、ABS、PET、PETG、0.13mm銅線
封裝工藝:超聲波自動植線 / 自動碰焊
執行標準:ISO 14443,ISO 10536
典型應用:企業/校園一卡通、公交儲值卡、高速公路收費、停車場、小區管理等
Mifare S50把1K字節的容量分為16個扇區(Sector0-Sector15),每個扇區包括4個數據塊(Block0-Block3,我們也將16個扇區的64個塊按絕對地址編號為0~63),每個數據塊包含16個字節(Byte0-Byte15),64*16=1024。
扇區號 | 塊號 | 塊類型 | 總塊號 | |
扇區0 | 塊0 | 廠商代碼 | 廠商塊 | 0 |
塊1 | 數據塊 | 1 | ||
塊2 | 數據塊 | 2 | ||
塊3 | 密碼A 存取控制 密碼B | 控制塊 | 3 | |
扇區1 | 塊0 | 數據塊 | 4 | |
塊1 | 數據塊 | 5 | ||
塊2 | 數據塊 | 6 | ||
塊3 | 密碼A 存取控制 密碼B | 控制塊 | 7 | |
... | ... | ... | ... | ... |
扇區15 | 塊0 | 數據塊 | 60 | |
塊1 | 數據塊 | 61 | ||
塊2 | 數據塊 | 62 | ||
塊3 | 密碼A 存取控制 密碼B | 控制塊 | 63 |
1 特征
1.1MIFARERF 接口ISO/IEC 14443A
無線傳送數據和能量不需要電池
工作距離最高可達100mm
由天線的結構geometry 決定
工作頻率13.56MHz
數據傳送速度快106kbit/s
數據高度可靠正確16 位CRC 奇偶校驗位編碼位計數
真正的反沖突
典型的購票處理ticketing transaction<100ms 包括備份管理
1.2 EEPROM
1K 字節分成16 個區每區又分成4 段每一段中有16 個字節
用戶可以定義每一個存儲器段的訪問條件
數據可以保持10 年 可寫100,000 次
1.3保密性Security)
需要通過3 輪確認ISO/IEC DIS9798-2 Mutual three pass authentication RF
信道的數據加密有重放攻擊保護, 每個區有兩套獨立的密鑰每應用支持帶密鑰層次的多應用support multi-application with key hierarchy ,每個設備有唯一的序列號
在運輸過程中訪問EEPROM有傳輸密鑰保護
2 總體描述
根據ISO/IEC 14443A 標準Philips 開發了無線智能卡芯片Mifare MF1 IC S50 非接觸式IC卡 這個芯片的通訊層 Mifareè RF 接口遵從ISO/IEC 14443A 標準的第2 部分和第3 部分保密層security layer 使用經 區域驗證的CRYPTO1 流密碼field-proven CRYPTO1 stream cipher, 使典型Mifare系列芯片的數據交換得到保密。
2.1 無線傳送數據和能量
Mifare系統中MF1 IC S50 連接著幾匝線圈線圈嵌入到塑料中這就形成了一張無源的無線智能卡,這種卡不需要電池當智能卡靠近讀寫裝置Read Write Device RWD 的天線時高速RF通訊接口可以以106kBit/s 的速度傳送數據
2.2 反沖突
智能的反沖突功能允許同一工作區域中有不止一張卡同時工作反沖突算法每次只選擇一張卡確保 對被選中的卡正確執行操作而且同一區域中的其他卡不會破壞數據
2.3 用戶更方便
系統的設計使用戶更加方便由于數據傳送速率很高它可以使整個買票過程在小于100ms 中完成 這樣Mifareè卡用戶就不需要停在RWD 前面增大了通道門的吞吐量減少了上公共汽車的時間 如果卡放在錢包中錢包中甚至有硬幣也可以進行交易
2.4 保密性
這個卡一個特殊的要點是保密防止欺騙相互詢問Mutual challenge 和響應確認數據保密和報 文確認檢查防止系統受到任何干擾使購票應用更有吸引力序列號不可修改保證了每張卡都是唯一的
2.5 多應用功能
和處理器卡processor card 的功能相比較Mifareè系統提供了一個實時的多應用功能每區有兩 個不同的密鑰這樣系統可以使用密鑰層次
MIFARE card
MIFARE card reader
2.6 發貨選項
晶片電路
突出的晶片電路
芯片卡模塊
3 功能描述
3.1 方框圖描述
MFI IC S50 由1KB 的EEPROM RF 接口和數字式控制單元組成能量和數據都通過天線傳送天 線由幾匝線圈組成并直接連到MF1 IC S50 不需要其他外部元件詳細的天線設計資料請參考Mifareè 卡IC 線圈設計指南
RF 接口
調制器解調器
整流器
時鐘再生器Clock Regenerator
上電復位
電壓調整器
反沖突在同一區域中的卡可以被順序選中執行操作
確認確認過程確保只有通過每個段的兩個密鑰才能對這個段進行任何存儲器操作
控制和算術邏輯單元值以特殊的冗余格式special redundant format 保存而且可以增加和減少
EEPROM 接口
Crypto 單元Mifare經典系列經區域驗證的CRYPTO1 流密碼field-proven CRYPTO1 stream cipher 確保數據交換的保密性 EEPROM 有1K 字節分成16 個區每區又分成4 段每一段中有16 個字節每個區的最后 一個段叫尾部它包括兩個密鑰和這個區中每一個段的訪問條件可編程
collision
Authenti-
3.2 通訊原理
通訊命令由RWD 初始化并由MF1 IC S50 的數字式控制單元根據相應區的有效訪問條件來控制
3.2.1
請求標準所有 卡上電復位POR 后它可以給請求代碼發送回應ATQA 根據ISO/IEC 14443A 回復RWD 的 請求命令由RWD 發出給所有在天線范圍內的卡
3.2.2 反沖突環
反沖突環可以讀出卡的序列號如果在RWD 的工作范圍內有幾張卡RWD 通過唯一的序列號來區別 它們而且每次選擇其中一張卡也叫選擇卡進行下一步操作沒有被選中的卡會回到準備模式等待新的 請求命令
3.2.3 選擇卡
RWD 使用選擇卡命令選中其中一張卡進行確認和存儲器相關操作卡返回Answer To Select ATS 碼=08h RWD 通過ATS 可以確定被選中的卡的類型如果需要更詳細的資料請參考Mifareè標準卡類 型識別過程
3.2.4 3輪確認
選中了一張卡之后RWD 指出了接著要訪問的存儲器位置然后使用相應的密鑰進行3 輪確認在 成功確認后所有的存儲器操作都是保密的。
Request Standard Request All
Get Serial Number
Select Card s
ector specific
Block Block
ment ment store Halt
Transfer
Identification and Selection
Procedure
3 ms without collision
+ 1 ms for each collision
2 ms Memory Operations
2.5 ms read block
6.0 ms write block POR
3.2.5 存儲器操作
確認之后可以執行以下的任何操作
讀存儲器段
寫存儲器段
減減存儲器段的內容并將結果保存在臨時的內部數據寄存器中
增增加存儲器段的內容并將結果保存在數據寄存器中
恢復將存儲器段的內容移到數據寄存器
傳送將臨時內部數據寄存器的內容寫到值存儲器段中
3.3 數據可靠正確性
RWD 和卡之間的無線通訊鏈路使用了以下的機制確保數據可靠地傳輸
每個段16 位CRC
每個字節都有奇偶校驗位
位計數檢查
用位編碼區別1 0 和沒有信息
信道監控協議序列和位流分析
3.4 保密性
根據ISO 9798-2 使用3 輪確認保密級別很高
3.4.1 3 輪確認的順序
a)RWD 指定要訪問的區并選擇密鑰A 或密鑰B
b) 卡從區尾讀出密鑰和訪問條件然后卡發送一個隨機數作為詢問challenge 到RWD 第 一輪
c) RWD 用密鑰和附加輸入計算響應然后將響應和RWD 的隨機詢問一起發送到卡中第二輪
d) 卡用自己的詢問和RWD 的響應相比較確認RWD 的響應然后卡計算詢問的響應并發送出去
第三輪The card verifies the response of the RWD by comparing it with its own challenge and then it calculates the response to chanllenge and transmits it.
e) RWD 用自己的詢問和卡的響應相比較確認卡的響應the RWD verifies the response of the card by comparing it to its own challenge
在發送第一個隨機的詢問之后卡和RWD 之間的通訊是保密的
3.5 RF 接口
RF 接口是根據無線智能卡標準ISO/IEC 14443A 設計的
RWD 的載波區一直存在在傳送時會有短暫暫停卡的能量從載波區獲得
在兩個方向的數據通訊中在每個幀的開始都有只一個起始位每個字節在傳送時最后都有一個奇偶
校驗位奇校驗所選段最低地址的字節最低位LSB 被首先發送最大的幀長度是163 位16 個數
據字節2CRC 字節16*9+2*9+1 個起始位
3.6 存儲器結構
1024x8 位的EEPROM 存儲器被分成16 個區每個區中有4 個段每段有16 字節 在擦除狀態時讀EEPROM 單元的值是邏輯0 在寫狀態時讀EEPROM 單元的值是邏輯1
1
Byte Number within a Block
0 2 3 4 5 6 7 8 9 10 11 12 13 14 15
: :
: :
3.6.1 廠商段
廠商段是存儲器第一個區的第一個數據段段0 它包含了IC 卡廠商的數據基于保密性和系統的
安全性這一段在IC 卡廠商編程之后被置為寫保護
3.6.2 數據段
所有的區都包含3 個段每段16 字節保存數據區0 只有兩個數據段和一個只讀的廠商段 數據段可以被以下的訪問位access bits 配置 讀寫段用于譬如無線訪問控制 值段用于譬如電子錢包它需要額外的命令像直接控制保存值的增加和減少 在執行任何存儲器操作前都要先執行確認命令
3.6.2.1 值段
值段可以實現電子錢包的功能有效的命令有讀寫增減恢復發送
值段有一個固定的數據格式可以進行錯誤檢測和糾正并備份管理
值段只能在值段格式的寫操作時產生
值表示一個帶符號4 字節值這個值的最低一個字節保存在最低的地址中取反的字節以標準 2 的格式保存為了保證數據的正確性和保密性值被保存了3 次兩次不取反保存一次取反保存
Adr 表示一個1 字節地址當執行強大的備份管理時用于保存存儲段的地址地址字節保存了4 次取反和不取反各保存兩次在執行增減恢復傳送操作時地址保持不變它只能通過寫命令改變
3.6.3 區尾段3
每個區都有一個區尾它包括
密鑰A 和B 可選讀密鑰時返回邏輯0
訪問這個區中4 個段的條件保存在第6 字節第9 字節訪問位access bits 也可以指出數 據段的類型讀寫或值
如果不需要密鑰B 那么段3 的最后6 字節可以作為數據字節
用戶數據可以使用區尾的第9 字節這個字節具有和字節6 7 和8 一樣的訪問權
3.7 訪問存儲器
在執行任何存儲器操作以前卡必須要被選中并經過確認
編址段可能的存儲器操作要根據使用的密鑰和保存在相應區尾的訪問條件決定
存儲器操作
操作 描述 有效的段類型
讀 讀一個存儲器段讀寫值和區尾
寫 寫一個存儲器段 讀寫值和區尾
增 增加段的內容并將結果保存在內部數據寄存器
減 減段的內容并將結果保存在內部數據寄存器
值
傳送 將內部數據寄存器的內容寫 到段中
值 恢復 將段的內容讀到內部數據寄 存器中
值
3.7.1 訪問條件
每個數據段和區尾的訪問條件由3 個位來定義它們以取反和不取反的形式保存在指定區的區尾中 訪問位控制了使用密鑰A 和B 訪問存儲器的權力當知道相關的密鑰和當前的訪問條件時可以修改 訪問條件
注在下面的描述中訪問位是以不取反的形式顯示
MF1 IC S50 的內部邏輯確保命令只在確認完畢后執行否則不會執行
訪問位 有效命令 段 描述
C13C23C33 讀寫 3 區尾
C12C22C32 讀寫增減傳送恢復 2 數據段
C11C21C31 讀寫增減傳送恢復 1 數據段
C10C20C30 讀寫增減傳送恢復 0 數據段
注存儲器訪問外部邏輯時檢查訪問條件的格式如果它檢測到格式被破壞整個區是不可逆的分塊 if it detects a format violation the whole sector is irreversible blocked.
3.7.2 區尾的訪問條件
區尾段3 的訪問位密鑰和訪問位的讀寫訪問可分為從不密鑰A 密鑰B 或密鑰A|B 密鑰A 或密鑰B
在片給區尾和密鑰A 傳送訪問條件被預定義為傳送配置由于密鑰B 可以在傳輸配置中被讀出新的 卡要用密鑰A 確認
由于訪問位可以被阻塞在個人化卡的時候要特別注意
訪問位 訪問條件
密鑰A 訪問位 密鑰B
注釋 C1 C2 C3 讀 寫 讀 寫 讀 寫
0 0 0 從不 密鑰A 密鑰A 從不 密鑰A 密鑰A 密鑰B 可以被讀 0 1 0 從不 從不 密鑰A 從不 密鑰A 從不 密鑰B 可以被讀
1 0 0 從不 密鑰B 密鑰A|B 從不 從不 密鑰B
1 1 0 從不 從不 密鑰A|B 從不 從不 從不
0 0 1 從不 密鑰A 密鑰A 密鑰A 密鑰A 密鑰A 密鑰B 可以被讀 傳輸配置
0 1 1 從不 密鑰B 密鑰A|B 密鑰B 從不 密鑰B
1 0 1 從不 從不 密鑰A|B 密鑰B 從不 從不
1 1 1 從不 從不 密鑰A|B 從不 從不 從不
注用灰色標明的行是密鑰B 可被讀的訪問條件此時密鑰B 可以存放數據
3.7.3 數據段的訪問條件
數據段段0 2 的訪問位讀寫訪問可分為從不密鑰A 密鑰B 或密鑰A|B 密鑰 A 或密鑰B 相關訪問位的設置定義了應用以及相應的應用命令
讀寫段可以進行讀和寫操作
值段可以進行增減傳送和恢復的值操作其中一種情況中001 只能對不可再充電的卡進行讀和減操作另一種情況中110 使用密鑰B 可以再充電
廠商段無論設置任何的訪問位這段都是只讀
密鑰管理在傳輸配置中密鑰A 必須用于確認1
訪問位 訪問條件 應用
C1 C2 C3 讀 寫 增 減傳送
恢復
0 0 0 密鑰A|B1 密鑰A|B1 密鑰A|B1 密鑰A|B1 傳送配置
0 1 0 密鑰A|B1 從不 從不 從不 讀寫段
1 0 0 密鑰A|B1 密鑰B1 從不 從不 讀寫段
1 1 0 密鑰A|B1 密鑰B1 密鑰B1 密鑰A|B1 值段
0 0 1 密鑰A|B1 從不 從不 密鑰A|B1 值段
0 1 1 密鑰B1 密鑰B1 從不 從不 讀寫段
1 0 1 密鑰B1 從不 從不 從不 讀寫段
1 1 1 從不 從不 從不 從不 讀寫段 1
如果密鑰B 可以在相應的區尾被讀出它就不能用于確認在前面所有表中的灰色行結果如果RWD 要用這些帶 灰色標記的訪問條件的密鑰B 確認任何段卡會在確認后拒絕任何存儲器訪問操作.