假设发卡行的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. CDC的StretchBlt函数载入位图时图片失真问题

    最近遇到加载的bmp图片出现失真问题,查找得知需要用SetStretchBltMode函数设置拉伸模式. 函数原型:int SetSTretchBltMode(HDC hdc, int iStretc ...

  2. PHP日常开发工具-Sublime应用

    工欲善其事,必先利其器.这里我推荐Sublime Text3做为PHP编辑器,以下简称为ST3,因为不仅系统资源占用小.打开快速,并且还有如下优点: 插件多,类似Emmet信手拈来,非常顺手. UI很 ...

  3. iOS8 关于预编译文件.pch的改变

    ios8 添加.pch文件 1, 新建文件 (command+N)选择other组,选择pch,输入文件名保存. eg: 创建的工程为Demo; 创建文件名为DemoPrefixHeader.pch ...

  4. JNI 翻译 转 Delphi 的 经验 方法

    首发在 ①FireMonkey[移动开发] 16523232 欢迎使用 FMX 开发手机程序的高手来访. 注意:如果您看了本文,翻译了 JNI,请发布到本群共享一份.不同意本规定的,请立即删除本文.凡 ...

  5. 使用bat/vbs/ahk对Windows下进行自动化操作

    回想90年代,我们在DOS下使用各种命令链对操作进行简化和自动化,如DOS 5.0添加的DosKey,利用管道和重定向对多组命令进行链式操作.后来使用了Ubuntu和其它Linux发型版后,bash下 ...

  6. python学习笔记之装饰器、递归、算法(第四天)

    参考老师的博客: 金角:http://www.cnblogs.com/alex3714/articles/5161349.html 银角:http://www.cnblogs.com/wupeiqi/ ...

  7. Infinite loop when using cookieless session ID on Azure

    If you use cookieless session ID and deploy them on Azure, you might get infinite loop when you quer ...

  8. python_函数

    一.map 遍历序列,对序列中每个元素进行操作,最终获取新的序列 li = [11,22,33,44] new_list = map(lambda a: a + 100,li) print(new_l ...

  9. 【转】Description Resource Path Location Type Java compiler level&n

    转载地址:http://blog.sina.com.cn/s/blog_ae96abfd0101qbq0.html 在项目上右键Properties->Project Facets,在打开的Pr ...

  10. js高级程序设计书中,有一句话在全局作用域中定义的函数实际上只 能被某个对象调用???

    js没有块级作用域(题外话:函数可以作为一个块级),所以我们经常使用闭包来模拟块级作用域,以避免变量或者函数因为名称相同而产生的冲突. 重点来了: 所以,如果我们把哪个变量或者函数放在全局作用域中,那 ...