资源描述:
《M1卡存储控制示例.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、例子:块3的初始化值为a0a1a2a3a4a5ff078069b0b1b2b3b4b5密码A存取控制密码B第一步:存取控制以二进制形式表示:位:bit7bit6bit5bit4bit3bit2bit1bit0ff11111111070000011180100000006901101001表1注意:字节9为备用字节,默认值为0x69存取控制的结构如下:(四字节中各位一次命名为)位:bit7bit6bit5bit4bit3bit2bit1bit0C2X3_bC2X2_bC2X1_bC2X0_bC1X3_bC1X2_bC1X1_bC1X0_bC1X3C1X2C1X1C1X0C3X3_bC
2、3X2_bC3X1_bC3X0_bC3X3C3X2C3X1C3X0C2X3C2X2C2X1C2X0BX7BX6BX5BX4BX3BX2BX1BX0表2_b表示取反,如C2X3_b即C2X3取反,X表示扇区号,Y表示第几块,C表示控制位,B表示备用位。第二步:由表1根据表2转换得:位置bit7bit6bit5bit4位置bit3bit2bit1bit0C20000C10000C10000C31000C31000C20000块号(Y)块3块2块1块0块号(Y)块3块2块1块0表3注意:高4位的各块值=低4位的各块值时,其值可用。高4位值≠低4位值时,其值不可用!根据表3得块3=C13C
3、23C33=(C1,3)(C2,3)(C3,3)=001块2=C12C22C32=(C1,2)(C2,2)(C3,2)=000块1=C11C21C31=(C1,1)(C2,1)(C3,1)=000块0=C10C20C30=(C1,0)(C2,0)(C3,0)=000第三步:查表4、表5即可得访问条件。数据块(块0、块1、块2)的存取控制如下:控制位(X=0..2)访问条件(对块0、1、2)C1XC2XC3XReadWriteIncrementDecrementtransferrestore000KeyA
4、BKeyA
5、BKeyA
6、BKeyA
7、B010KeyA
8、BNeverNeverN
9、ever100KeyA
10、BKeyBNeverNever110KeyA
11、BKeyBKeyBKeyA
12、B001KeyA
13、BNeverNeverKeyA
14、B011KeyBKeyBNeverNever101KeyBNeverNeverNever111NeverNeverNeverNever表4(KeyA
15、B表示密码A或密码B,Never表示任何条件下不能实现)例如:当块0的存取控制位C10C20C30=100时,验证密码A或密码B正确后可读;验证密码B正确后可写;不能进行加值、减值操作。控制块(块3)的存取控制与数据块(块0、1、2)不同,它的存取控制如下:控制位密码A存取控制密码BC13
16、C23C33ReadWriteReadWriteReadWrite000NeverKeyA
17、BKeyA
18、BNeverKeyA
19、BKeyA
20、B010NeverNeverKeyA
21、BNeverKeyA
22、BNever100NeverKeyBKeyA
23、BNeverNeverKeyB110NeverNeverKeyA
24、BNeverNeverNever001NeverKeyA
25、BKeyA
26、BKeyA
27、BKeyA
28、BKeyA
29、B011NeverKeyBKeyA
30、BKeyBNeverKeyB101NeverNeverKeyA
31、BKeyBNeverNever111NeverNeverKeyA
32、BNe
33、verNeverNever表5例如:当块3的存取控制位C13C23C33=100时,表示:密码A:不可读,验证KEYB正确后,可写(更改)。存取控制:验证KEYA或KEYB正确后,可读不可写。密码B:不可读,验证KEYB正确后,可写。