利用一台IC-02v2 USB免驱读写器,配套测试工具,发送调试指令演示。
密码认证第一次发送:
1A 00 //1A指令,00密钥编号 密钥初始值:00000000000000000000000000000000
RANB=565B4036EF7C3BC6D207344218AF0778 //返回数据通过AES解密得出
RANB'=5B4036EF7C3BC6D207344218AF077856
RANA=A3F6353A2BE36AEF3EE7E3B303F54303
密码认证第二次发送:
AF8B2736B37BD01BB2BD26126AAB05386BF68BA1692CD23EFDD043AB9CAD8951F0 //用RANA和RANB'加密
随机密钥生成:
SV=5AA500010080A3F663616BD585933BC6D207344218AF07783EE7E3B303F54303
随机密钥=61C315D2F645FA8FA9415F237781A748 //用00密钥,计算CMAC得出,SV是参与计算输入值
计算读卡发送的CMAC:
参与计算输入值:
0000 30 12 // 读取起始块是0x12
CMAC=31 CC B7 82 E9 D3 C4 AE 92 65 F4 34 38 BF 8E 49 //用随机密钥计算得出CMAC
CMAC'T=CC82D3AE6534BF49
发送读卡数据:
30 12 CC 82 D3 AE 65 34 BF 49
卡片返回:
00000000000000000000000000000000C4624B09CBFEA0F8 //4块数据+CMAC
计算写卡发送的CMAC:
计算参与输入值:
0200 A2 12 01 02 03 04 // 写数据到0x12块
CMAC=1F 57 81 B4 16 49 28 34 A3 C0 0D D1 CF 56 89 C5
CMAC'T= 57 B4 49 34 C0 D1 56 C5
发送写卡数据:
A2 12 01 02 03 04 57 B4 49 34 C0 D1 56 C5
卡片返回:
F7467B74E04F4B08
文章编写:王先生,如有疑问请联系,18026219621
|