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

本文详细介绍了IC卡中ARQC(应用响应质量码)和ARPC(应用响应程序码)的计算方法与步骤,并通过实例展示了如何利用过程密钥SKAC通过PBOC-3DES算法计算出ARQC和ARPC的具体值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

假设发卡行的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
 

转载于:https://www.cnblogs.com/1024Planet/p/6256545.html

目 次 前 言 I 1. 范围 1 2. 规范性引用文件 1 3. 术语定义 1 3.1 PIN(Personal Identification Number) 1 3.2 PIN Block 1 3.3 MAC(Message Authentication Code) 1 3.4 MMK(Member Master Key) 1 3.5 MAK(MAC Key) 1 3.6 PIK(PIN Key) 2 3.7 数据密钥 2 3.8 HSM 2 4. 密钥管理与控制 2 4.1 安全管理基本要求 2 4.1.1 管理制度的基本要求 2 4.1.2 数据传输安全控制的基本要求 2 4.1.3 硬件加密机的基本要求 2 4.1.4 数据加密传输环境的基本要求 3 4.2 各层次密钥简介 3 4.3 密钥的产生 3 4.3.1 数据密钥的产生 4 4.3.2 成员主密钥(MMK)的产生 4 4.3.3 主密钥的产生 4 4.4 密钥的分发 4 4.4.1 数据密钥的分发 4 4.4.2 成员主密钥(MMK)的分发 4 4.5 密钥的存储 4 4.5.1 数据密钥成员主密钥的存储 4 4.5.2 主密钥的存储 4 4.5.3 密钥档案的保存 4 4.6 密钥的销毁 5 5. 数据的加密处理 5 5.1 PIN的加密解密 5 5.1.1 PIN的长度 6 5.1.2 PIN的字符集 6 5.1.3 PIN BLOCK 6 5.1.4 PIN的加密方法 7 5.1.5 PIN异常的处理 7 5.2 联机报文MAC的计算方法 7 5.2.1 MAC的使用条件 7 5.2.2 MAC报文域的选择 7 5.2.3 MAC域的构成规则 10 5.2.4 MAC的计算 10 5.2.5 MAC错误异常处理 11 5.3 顺序文件MAC的计算方法 11 5.3.1 MAC KEYMAC的字符组成 11 5.3.2 MAC KEY的产生方式 11 5.3.3 MAC块(MAB)的构成 11 5.3.4 MAC的计算 11 5.3.5 MAC错误异常处理 11 5.4 VIP文件主账号的加密解密 11 5.4.1 VIPPAN的长度 12 5.4.2 VIPPAN的字符集 12 5.4.3 VIPPAN BLOCK 12 5.4.4 VIPPAN的加密方法 12 6. 重置密钥 13 6.1 入网机构发起的申请重置密钥 13 6.1.1 交易流程 13 6.1.2 流程图 14 6.1.3 入网机构申请重置密钥说明 14 6.1.4 报文格式 15 6.2 CUPS发起的重置密钥 16 6.2.1 交易流程 16 6.2.2 流程图 16 6.2.3 CUPS发起的重置密钥说明 17 6.2.4 报文格式 18 6.3 新旧密钥的切换处理(同步) 19 7. PBOC借/贷记标准IC安全说明 19 7.1 PBOC借/贷记标准IC的安全认证功能 19 7.2 ARQC的生成算法 20 7.2.1 ARQC的生成过程 20 7.2.2 密钥分散算法(MDK生成UDK) 20 7.2.3 双长度DES过程密钥(Session Key)分散算法 20 7.2.4 计算ARQC 21 7.2.5 计算ARPC 22 8. 相关报文域说明 22 8.1 域48 22 8.1.1 变量属性 22 8.1.2 域描述 22 8.2 域52 22 8.2.1 变量属性 23 8.2.2 域描述 23 8.2.3 用法 23 8.2.4 错误代码 23 8.3 域53 23 8.3.1 变量属性 23 8.3.2 域描述 23 8.3.3 用法一:密钥管理类报文中的使用 23 8.3.4 用法二:交易报文类中的使用 23 8.3.5 拒绝码 23 8.4 域70 23 8.4.1 变量属性 23 8.4.2 域描述 24 8.4.3 用法一:网络管理及密钥更新类报文标识 24 8.4.4 拒绝码 24 8.5 域96 24 8.5.1 变量属性: 24 8.5.2 域描述: 24 8.5.3 用法: 24 8.6 域128、192 24 8.6.1 变量属性 24 8.6.2 域描述: 24 8.6.3 用法: 24 8.7 域134 25 8.7.1 变量属性 25 8.7.2 域描述 25 8.7.3 134.1 25 8.7.4 134.2 25 8.7.5 134.4 26 8.8 域136 26 8.8.1 变量属性 26 8.8.2 域描述 26 8.8.3 拒绝码 26 8.9 域139 26 8.9.1 变量属性 26 8.9.2 域描述 26 8.9.3 域139.1 26 8.9.4 域139.2 26 参考文献 28
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值