自己搜索資料總結的關于>>M1卡詳細信息介紹<<,希望能提供給在做關于M1卡相關實驗的伙伴們一個幫助。
M1卡說明
M1卡的容量:1KB。
每張卡都有唯一的序列號,為 32位。(一般在第 0扇區的第0塊開頭UID)
工作頻率:13.56MHz,通信速率:106KBPS。
M1卡分為16個數據存儲區,通常稱為”扇區“,編號是”0“到”15“。
每個扇區又分為 4 個存儲單元,我們稱為”塊“,在 M1 卡中數據存儲的最小單位就是”塊“,
每一塊有16字節(16B),用來存放數據。
M1卡存儲結構:
第0扇區的塊0:用于存放廠商代碼,已經固化,不可更改。
在全扇區加密時,通常用前三個”塊“(0,1,2 號塊)存放數據,用最后一個”塊“(3 號塊)存放密碼。
其中,密碼分為 A 密碼和 B 密碼:前 6 個字節存放 A 密碼,中間 4 字節為控制字段,后 6字節存放B密碼。
例如:
A0 A1 A2 A3 A4 A5 FF 07 80 69 B0 B1 B2 B3 B4 B5
密碼A(6字節) |存取控制(4字節) |密碼B(6字節)
注意:!!!!!!!!!!每個扇區的密碼都是獨立的。也就是說可以為 16 個扇區設置 16 個不同
(相同)的密碼。
數據塊可作兩種應用:
1.用作一般的數據保存,可以進行讀,寫操作。
2. 用 作 數 值 塊 , 可 以 進 行 初 始 化 值 , 加 值 , 減 值 , 讀 值(INCREMENT/DECREMENT/TRANSFER/RESTORE)操作。
【重點】
扇區中的每個塊(包括數據塊和控制塊)的存取條件是由密碼和存取控制共同決定的,在存
取控制中每個塊都有相應的三個控制位,用以決定某數據塊或控制塊的讀寫條件,定義為CX
x y 如下:
塊0: C10 C20 C30
塊1: C11 C21 C31
塊2: C12 C22 C32
塊3: C13 C23 C33
三個控制位以正和反兩種形式存在于存取控制字節(6,7,8,9 字節)中,決定了該塊的訪問權限(如 進行減值及初始化操作必須驗證 KEY A,進行加值操作必須驗證 KEY B,等等)。
其中:CX 代表每塊控制位號(C1~C3),x代表某塊所屬扇區號(0~15),y代表該扇區內某塊號。例如C1 x 2 即為x扇區內塊2的第1控制位。
【重點】主要需要了解的表有:
數據塊(0塊,1塊,2塊)的存儲控制權限表:
(KeyA|B表示密碼A 或密碼B,Never表示任何條件下不能實現)。
控制塊(塊3)的存取控制權限表:
例如:以常用設置"08 77 8F 69"控制條件為例,先搞清楚它――具有的訪問權限。
1、對"08 77 8F 69"值進行計算,該值定位于各區塊 3 的 6, 7, 8, 9 四個字節內,字節 6=08,
字節 7=77, 字節 8=8F, 字節 9=69(默認值,不予計算)。
2、例如:字節 6=08,對應其二進制值=00001000, 則對 6,7,8 這三個字節進行二進制轉換結果見下表:
② 、高位和低位的順序是不一樣的。高位從上向下是 C2,C1,C3。低位是 C1,C3,C2
5.查對訪問權限(數據存取控制依照“數據塊(0塊,1塊,2塊)的存儲控制權限表“,塊 3 存取控制依照表控制塊(塊3)的存取控制權限表),該例"08 77 8F 69"的訪問權限為:
◆ 塊 3 = 011:權限為:KeyA,KeyB 均不可讀,驗證 KeyB 正確后可改寫 KeyA 和KeyB,驗證 KeyA 或 KeyB 正確后可讀"控制位"。在此可見密鑰 KeyB 的重要性,KeyB 不正確是無法看到塊 3 控制值,更無法修改密鑰。
◆ 塊 2 = 塊 1 = 塊 0 = 110:權限為:驗證 KeyA 或 KeyB 后可讀該塊數據,減值以及初始化值,只有驗證 KeyB 正確后才可改寫該塊數據,在此可以看到密鑰 KeyB 對改寫數據塊也起著關鍵性作用。
總結:各塊(包括數據塊 0,1,2或者控制塊 3)具有的訪問權限是通過塊 3的存取控制字節按照表2和表4的算法,然后算出各塊的3個控制位的值,然后通過查詢“數據塊(0 塊,1 塊,2 塊)的存儲控制權限表”和“控制塊(塊 3)的存取控制權限表”來得出各塊對應的訪問權限。
完整的pdf格式文檔51黑下載地址:
M1卡說明.pdf
(433.49 KB, 下載次數: 52)
2018-11-7 10:11 上傳
點擊文件名下載附件
|