TC、ARQC、AAC及ARPC校验方式

来源:互联网 发布:剑网3知其不可为任务 编辑:程序博客网 时间:2024/06/03 23:01

以下这篇文章并非原著,文档传到我这里,我已经不知道出处了,感谢作者。


TC、ARQC、AAC及ARPC校验方式

前提:

1.    获得IC卡AC子密钥,或者获得发卡行AC主密钥

    本例:

MDKAC             =     C4D689158AD9FB9D23105B91CE046D0E

2.       得到IC卡卡号及卡序列号

本例:

       PAN      =     6210220110002707355

       PAN ser =  01

1.TC、ARQC及AAC的计算方式

取IC卡AC子密钥

如果已经获得了IC卡AC子密钥则略过此步。

用发卡行主密钥分散出IC卡AC子密钥。

方法为使用发卡行主密钥,对PAN的后14位(如果PAN不足14位前面补0)加PAN序列号(共8B)并对此取反连接得到的16字节数据,做3DES加密就得到IC卡AC子密钥。

如:

       用MDKAC对2011000270735501DFEEFFFD8F8CAAFE       做3DES加密得       B8A15DA5F7043C317D9FD8F8DFE2BD75(UDK)

得过程密钥

用IC卡AC子密钥,对交易计数器ATC做3DES加密:

1. 在ATC前补6字节0x00,对ATC取反,并在前补6字节0x00,并连接

       如:

              ATC       =     03D3

                     00000000000003D3000000000000FC2C

2. 用IC卡AC子密钥对如上数据做3DES加密得过程密钥:

       如:

       用UDK对00000000000003D3000000000000FC2C做3DES加密得4A43440B2D932ACDC4E2776ED562EE43 (过程密钥)

校验AAC、TC及ARQC

IC卡返回的55域数据为:

待校验的密文: 81 A9 DC 93 10 F888 56

授权金额:       000000000000     9F0206

其它金额:       000000000000           9F0306

国家代码:       0156                           9F1A02

终端验证:       0000000000               9505

货币代码:       0156                           5F2A02

交易日期:       000000                       9A03

交易类型:       00                               9C01

随机数:         00000444                   9F3704

AIP:       7C00                          8202

ATC:      03D3                          9F3602

CVR:    0380A800                  9F1013

连接如上数据得:

00000000000000000000000001560000000000015600000000000004447C0003D30380A800

用过程密钥对如上数据做MAC运算得到了AAC、TC或ARQC:

       AAC、TC或ARQC              =  81A9DC9310F88856

与IC返回的密文比较 相等,校验成功!

2.ARPC的计算方式

取授权应答码

授权应答码为服务器返回的两字节数据,本例采用“00”

ARC      =     0x300x30

ARPC计算过程

1.    在ARC后补6个字节0x00,并和ARQC做异或运算

       如:

              3030000000000000异或81A9DC9310F88856

得   B199DC9310F88856

2.    使用过程密钥对异或结果做3DES加密运算就得到ARPC

4A43440B2D932ACDC4E2776ED562EE43 对B199DC9310F88856做3DES加密运算得:84DD63A221F915CA(ARPC)

3.    命令(外部认证)

00 82 00 00 0A +ARPC(8B)+ARC(2B)

                     

0 0