一、主要指标以及存储结构
1.S50卡共有16个扇区,每个扇区分为4块,每块16个字节(块0,块1,块2为数据块;块3为控制块),按绝对地址编号为0~63.存储结构如图一所示。
图一.S50卡存储结构
2.第0扇区的块0(即绝对地址0),用于存放序列号和厂商代码,已经固化不可更改。
3.每个扇区的块3为控制块,包括了密钥A(6字节)、控制字(4字节)、密钥B(6字节)。具体结构如图2所示。
A0 A1 A2 A3 A4 A5 | FF 07 80 69 | B0 B1 B2 B3 B4 B5 B6 |
图二.控制块结构
4.每个扇区的密钥和控制字都是独立的,可以根据实际需要设定各自的密码以及控制字。此外,扇区中的每个块(包括数据块和控制块)的存取条件都是由密钥和控制字共同决定的,控制字还包含了本扇区3个数据块以及控制块的控制位。其控制位定义如下:
块0:C10 C20 C30
块1:C11 C21 C31
块2:C12 C22 C32
块3:C13 C23 C33
5.三个控制位以正和反两种形式存在于存取控制字中,它们决定了相应块的访问权限。如图三块0的存储结构控制,图四完整的控制字结构(控制位为4字节,但字节9为备用字节)
NOTE 备用字节(原英文资料解释):The last byte of the access conditions may be used to store some specific application dara(e.g. location of the write backup block)
图3.块0的存储结构
图4.完整控制字结构
6.控制块的存储控制:
e.g. 当块3的控制位——C13 C23 C33 = 0 0 1时,表示:
密钥A:不可读,验证KEYA或者KEYB正确后,可写 ;
控制字:验证KEYA或KEYB后,可读、可写;
密钥B:验证KEYA或KEYB正确后,可读、可写。
如果密钥B可读(所有灰色标记区域),那么密钥B的内存空间将用于数据存储,并且不能用于密钥验证。因此,访问会失败。(原英文解释:If key B may be read (all grey marked lines) the memory space key B is used for data storage and it shall not be used for authentication because all further memory access oprations will fail)
6.数据块的功能:
⑴ 用作数据保存,可读、可写
⑵ 电子钱包(可对数据进行加或减操作)
7.数据块的存储控制:
NOTE: key A|B means key A or key B
e.g. 当块0的存取控制位 C10 C20 C30 = 1 0 0时,表示:
验证密钥A或密钥B后可读;
验证密钥B后可写;
不能进行加值、减值操作。
待续。。。
转载自原文链接, 如需删除请联系管理员。
原文链接:S50(Mifare 1K)卡简介及存储控制原理,转载请注明来源!