首页 » 技术分享 » S50(Mifare 1K)卡简介及存储控制原理

S50(Mifare 1K)卡简介及存储控制原理

 

一、主要指标以及存储结构

      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)卡简介及存储控制原理,转载请注明来源!

0