您的位置:首页 > 其它

金融IC卡 ARQC和ARPC计算方法和实例(转)

2017-01-06 15:39 253 查看
假设发卡行的IC卡应用密钥如下:


PBOC_IMK_AC F0C34A8124CEE0A91A0B034AA97D6EAC
PBOC_IMK_ENC D30F45EABC12AC3EF56B0C0D7F8654DE
PBOC_IMK_MAC 12B1AC4AF070CC35612BFE2D30AB600D


ARQC和ARPC及过程数据如下:


[9f26]--->[ 8]--->[5D016C91005E7CC2] //应用密文
[9f27]--->[ 1]--->[80] //密文信息数据
[9f10]--->[ 19]--->[07000103A04002010A010000001000D1F61152] //发卡行应用数据
[9f37]--->[ 4]--->[1E78EEBC] //终端随机数
[9f36]--->[ 2]--->[0240] //应用交易计数器
[ 95]--->[ 5]--->[0080046000] //终端验证结果(TVR)
[ 9a]--->[ 3]--->[140701] //交易日期
[ 9c]--->[ 1]--->[00] //交易类型
[9f02]--->[ 6]--->[000000000001] //授权金额
[5f2a]--->[ 2]--->[0156] //交易货币代码
[ 82]--->[ 2]--->[7D00] //应用交互特征(AIP)
[9f1a]--->[ 2]--->[0156] //终端国家代码
[9f03]--->[ 6]--->[000000000000] //其他金额
[9f33]--->[ 3]--->[60E1C8] //终端性能
[9f34]--->[ 3]--->[020300] //持卡人认证结果
[9f35]--->[ 1]--->[22] //终端类型
[9f1e]--->[ 8]--->[3833323049434300] //接口设备序列号
[ 84]--->[ 8]--->[A000000333010101] //专用文件(DF)名称
[9f09]--->[ 2]--->[0020] //应用版本号(终端)
[9f41]--->[ 4]--->[00000007] //交易序列计数器


计算ARQC的过程数据:

计算的卡号: 6228000100001

卡序列号: 01
交易计数器: 0240
计算ARQC的数据:000000000001000000000000015600800460000156140701001E78EEBC7D00024003A04002
计算所得ARQC: 5D016C91005E7CC2
获取所得ARQC: 5D016C91005E7CC2



计算ARPC的过程数据:

计算的卡号: 6228000100001
卡序列号: 01
交易计数器: 0240
ARQC值: 5D016C91005E7CC2
授权应答码: 01
计算所得ARPC: 21415243527CE78F



IC卡过程密钥SKAC的计算公式:

先计算分散密钥,再计算过程密钥
PAN+序列号 取最右边16位
Y:PAN+序列号 取最右边16位
Z: =ALG(MDK)[Y||(Y⊕ (‘ FF’ ||‘ FF’ ||‘ FF’ ||‘ FF’ ||‘ FF’ ||‘ FF’ || ‘ FF’ ||‘ FF’ ))]
得到卡片分散密钥:Z
过程密钥SKAC: =ALG(Key(=Z))[‘00’||‘00’||‘00’||‘00’||‘00’||‘00’||ATC||‘00’||‘00’||‘00’||‘00’||‘00’||‘00’||(ATC⊕‘FFFF’)]



实例计算:
Pan:6228000100001
序列号:01
ATC:0240

Y:0622800010000101
(Y⊕ (‘ FF’ ||‘ FF’ ||‘ FF’ ||‘ FF’ ||‘ FF’ ||‘ FF’ || ‘ FF’ ||‘ FF’ )):0622800010000101异或FFFFFFFFFFFFFFFF = F9DD7FFFEFFFFEFE
Y||(Y⊕ (‘ FF’ ||‘ FF’ ||‘ FF’ ||‘ FF’ ||‘ FF’ ||‘ FF’ || ‘ FF’ ||‘ FF’ )):0622800010000101F9DD7FFFEFFFFEFE
得到卡片分散因子:0622800010000101F9DD7FFFEFFFFEFE

PBOC_IMK_AC对分散因子进行3DES加密得到卡片分散密钥Z:014D996FCC8F49157DC8B49E3BCDFD99
由ATC产生的过程密钥分散因子[‘00’||‘00’||‘00’||‘00’||‘00’||‘00’||ATC||‘00’||‘00’||‘00’||‘00’||‘00’||‘00’||(ATC⊕‘FFFF’)]:0000000000000240000000000000FDBF
过程密钥SKAC由Z对上述分散因子进行3DES加密得到:D4102725E6E5AD329E55AAB50BF23DA9

ARQC计算步骤及公式:
使用过程密钥SKAC通过PBOC-3DES算法对参与计算的数据进行Mac计算得到ARQC。
计算ARQC的数据:000000000001000000000000015600800460000156140701001E78EEBC7D00024003A04002
过程密钥SKAC:D4102725E6E5AD329E55AAB50BF23DA9
使用过程密钥SKAC通过PBOC-3DES算法对参数计算的数据进行Mac计算得到ARQC:5D016C91005E7CC2

ARPC计算步骤及公式:

计算ARPC过程:

X=(ARC|| ‘ 00’ ||‘ 00’ ||‘ 00’ ||‘ 00’ ||‘ 00’ ||‘ 00’ )
Y: =ARQC⊕ X
ARPC: =ALG( SKAC) [Y||‘ 00’ ||‘ 00’ ||‘ 00’ ||‘ 00’ ||‘ 00’ ||‘ 00||‘ 00’ ||‘ 00]



实例计算:
ARC:01
X:3031000000000000
Y:5D016C91005E7CC2⊕3031000000000000 = 6D306C91005E7CC2
[Y||‘ 00’ ||‘ 00’ ||‘ 00’ ||‘ 00’ ||‘ 00’ ||‘ 00||‘ 00’ ||‘ 00]:6D306C91005E7CC20000000000000000
ARPC由密钥SKAC对 [Y||‘ 00’ ||‘ 00’ ||‘ 00’ ||‘ 00’ ||‘ 00’ ||‘ 00||‘ 00’ ||‘ 00]进行3DES加密运行得到:21415243527CE78FEFA66824CDC903C0
即ARPC:21415243527CE78F

转至:金融IC卡 ARQC和ARPC计算方法和实例

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: