假设发卡行的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计算方法和实例(转)的更多相关文章

  1. PBOC金融IC卡,卡片与终端交互的13个步骤,简介-第四组(转)

    十:联机处理-可选项终端根据卡片行为分析的结果,执行对应的处理.若卡片响应联机,则终端发起联机操作.联机处理使得发卡行后台可以根据基于后台的风险管理参数检查并授权批准或拒绝交易.除了传统的联机欺诈和信 ...

  2. PBOC金融IC卡,卡片与终端交互的13个步骤,简介-第三组

    七:终端风险管理-必选但包含可选步骤异常文件:终端检查应用主账号是否在异常文件列表(卡号黑名单)中.商户强制联机:商户可以将当前交易强制为联机处理.最低限额:控制交易当前交易金额或同一张卡片连续几笔交 ...

  3. PBOC金融IC卡,卡片与终端交互的13个步骤,简介-第二组(转)

    四:脱机数据认证-可选终端进行脱机数据认证来,认证卡片.记住:对于某个事情,终端与卡片谁单独也说了不算,要二者都能干才能干. 终端依据卡片(AIP)和终端(终端性能)的支持情况,决定是否使用及使用哪种 ...

  4. PBOC金融IC卡,卡片与终端交互的13个步骤,简介-第一组(转)

    两个PPT结合起来--一些基础介绍--每一步的详细细节还要去研读文档 EMV-全球标准PBOC-国内标准 ----------------------一:必选:应用选择应用选择的方法:目录选择法.AI ...

  5. 金融卡IC卡知识50问

    1.什么是金融IC卡? 金融IC卡又称为芯片银行卡,是以芯片作为介质的银行卡.芯片卡容量大,可以存储密钥.数字证书.指纹等信息,其工作原理类似于微型计算机,能够同时处理多种功能,为持卡人提供一卡多用的 ...

  6. PBOC联机交易中ARQC及ARPC的计算

    金融IC卡在申请联机交易时,终端会进行发卡行认证,验证卡片的合法性,终端通过GAC得到卡片返回的ARQC,与终端自身产生的ARQC进行比较,如果一致,则说明是由发卡行发行的合法卡片,同时对ARQC及认 ...

  7. 磁条卡,IC卡,ID卡,信用卡芯片卡,信用卡磁条卡 等等的区别

    1.条码卡:该卡卡面上有一串条码,通过扫描枪或者相应的条码读卡器读出该条码卡的卡号.根据条码的不同又分为39码等其它码.条码卡仅仅是一个编号,不存蓄其它内容.特点:价格便宜类似磁卡. 2.磁条卡:类似 ...

  8. "软掩膜"和“硬掩膜”-智能IC卡

    目录 一.“软掩膜”和“硬掩膜”... 2 二.EMV迁移进程... 3 三.PBOC规范和EMV规范对比... 3 四.总结... 5 五.关于SDA和DDA. 6 一.“软掩膜”和“硬掩膜” “软 ...

  9. IC卡读卡器web开发,支持IE,Chrome,Firefox,Safari,Opera等主流浏览 器

    IC卡读卡器在web端的应用越来越多,但是早期发布的ocx技术只支持IE浏览器,使用受到了很多的限制.IC卡读卡器云服务的推 出,彻底解决了以上的局限,使得IC卡读卡器不仅可以应用在IE浏览器上,还可 ...

随机推荐

  1. java版模拟浏览器下载百度动漫图片到本地。

    package javaNet.Instance.ImageDownload; import java.io.BufferedReader; import java.io.File; import j ...

  2. React 入门实例教程(转载)

    本人转载自: React 入门实例教程

  3. linux下flash的安装

    linux的初学者可能会遇到各种各样的问题,其中的问题就有一个,linux下的flash插件怎么安装呢? 首先前往flash官网下载好对应的文件,然后提取里面的一个叫做 libflashplayer. ...

  4. 分布式入门之5:paxos

    paxos是去中心化协议,较难理解.   proposer, accepter是其中的主要角色.前者发起投票,后者批准投票. 核心思想是,一旦超过半数的accepter同意某个投票,整个流程结束,批准 ...

  5. C++11特性(模板类 initializer_list)

    [1]initializer_list模板类 C++primer 原文如下: 通读原文相关篇幅,分析解读内容如下: 提供initializer_list类的初衷,为了便于将有限个同一类型(或可转换为同 ...

  6. wex5 实战 图片触摸放大移动插件easyzoom的使用与集成

    一 前言 客户的需求就是上帝的召唤. 作为一个开发人员,或者软件从业者,客户的要求就是准则. 遇到一个客户,让我做一个图片放大,但是移动拖拽要定位精准.之前研究过一个hammer插件,多次尝试放大后的 ...

  7. Java数据结构之对称矩阵的压缩算法---

    特殊矩阵 特殊矩阵是指这样一类矩阵,其中有许多值相同的元素或有许多零元素,且值相同的元素或零元素的分布有一定规律.一般采用二维数组来存储矩阵元素.但是,对于特殊矩阵,可以通过找出矩阵中所有值相同元素的 ...

  8. grid style

    <style type="text/css"> .g_grid tr{ border-left:none; border-right:none; border-top: ...

  9. Mac OS下基于Eclipse的Android调试环境搭建

    1.安装Eclipse:http://www.eclipse.org/downloads/,网页会自动检测适用的版本(Mac OS x64),下载“Eclipse IDE for java Devel ...

  10. MaxScale:实现MySQL读写分离与负载均衡的中间件利器

    1. MaxScale 是干什么的? 配置好了 MySQL 的主从复制结构后,我们希望实现读写分离,把读操作分散到从服务器中,并且对多个从服务器能实现负载均衡. 读写分离和负载均衡 是MySQL集群的 ...