Bank相关3_ARQC与ARPC的生成和校验方法

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

ARQC:authenticate request cryptogram,授权请求报文

ARPC:authenticate response cryptogram,授权响应报文

AC:application cryptogram,应用密文

AAC:application authenticate cryptogram,应用认证密文

TC:transaction certificate,交易证书

ATC:application transaction counter,应用交易计数器

ARC:authenticate response code,授权应答码

前提: 
1. 获得IC卡AC子密钥(应用子密钥),或者获得发卡行AC主密钥(应用主密钥)  本例假设卡片的应用主密钥为MDKAC,十六字节: 
MDKAC  = C4D689158AD9FB9D23105B91CE046D0E 
2. 已知IC卡卡号PAN(5A)及卡序列号(5F34) 
本例:  PAN = 6210220110002707355  卡号一般为19位,最后一位是校验位,  PAN ser =  01 ,卡序列号一般是一个字节,存储在tag5F34中 


二、TC、ARQC及AAC的计算

a.首先需要取IC卡AC子密钥(应用子密钥),如果已经获得了IC卡AC子密钥(应用子密钥)则略过此步。

获取应用子密钥的方法:  用发卡行的应用主密钥===》分散===》IC卡的应用子密钥

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

如:  用MDKAC=C4D689158AD9FB9D23105B91CE046D0E    PAN = 62102 20110002707355  ,PAN ser =   01

        对20110002707355 01 DFEEFFFD8F8CAAFE 做3DES加密得 B8A15DA5F7043C317D9FD8F8DFE2BD75(UDK)应用子密钥

(2011000270735501)  =》取反  =》( DFEEFFFD8F8CAAFE)

(这就是所谓的有应用主密钥分散得到应用子密钥的过程)

b.计算得到过程密钥:

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

1.在ATC前补6字节0x00,对ATC取反,并在前补6字节0x00,并连接成16字节的数据,作为3DES的加密数据

例 如:ATC = 03D3 则  链接后的数据为: 00000000000003D3 000000000000FC2C     (其中FC2C为03D3取反后的值,可以用计算器(程序员模式)验证)

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

 如: 用UDK对00000000000003D3000000000000FC2C做3DES加密得到的结果即是:4A43440B2D932ACDC4E2776ED562EE43 (过程密钥 )

3.校验AAC、TC及ARQC

IC卡返回的55域数据为:      待校验的密文: 81 A9 DC 93 10 F8 88 56

授权金额:                     000000000000                                  9F0206

其它金额:                     000000000000                                  9F0306

国家代码:                     0156                                                9F1A02

终端验证:                     0000000000                                     9505

货币代码:                     0156                                                5F2A0

交易日期:                     000000                                            9A03

交易类型:                     00                                                   9C01

随机数:                        00000444                                        9F3704

AIP:                           7C00                                                 8202  

ATC:                          03D3                                                9F3602

CVR:                          0380A800                                        9F1013

连接如上数据得:

000000000000 000000000000 0156 0000000000 0156 00000000 00000444 7C00 03D3 0380A800

用过程密钥对如上数据做MAC运算得到了AAC(应用认证密文)、TC(交易证书)或ARQC(授权响应报文):

 AAC、TC或ARQC  =   81A9DC9310F88856 与IC卡返回的响应密文比较相等,校验成功!

三、ARPC的计算方式

a.取授权应答码(ARC)  

授权应答码为服务器返回的两字节数据,本例假设为:“00”  则ARC = 0x30 0x30  (十六进制)

ARPC计算过程  

1. 在ARC后补6个字节0x00,并和ARQC做异或运算  如:   3030 000000000000 异或(XOR) 81A9DC9310F88856  得 B199DC9310F88856  

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

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

3. 命令(外部认证)  00 82 00 00 0A +ARPC(8B)+ARC(2B)

转自:https://www.cnblogs.com/ttss/p/4364328.html

金融ARQCARPC验证生成规则 从2012年从事金融行业的IT开发和实施工作以来,接触最多的就是IC卡片的ARQC等安全验证,只从发行IC卡以来,行业里面安全验证就是使用ARQC来验证交易的安全性,最近在项目中实施改造的时候因为前段读卡上送过来的ARQC到我系统,我系统去安全平台做ARQC验证失败,原因排查了好久都不知道什么原因,所以我自己研究了下将验证ARQC和生产ARPC的过程写下来,网上有很多关于 ARQC生成的规则文章,... 阅读详情

相关推荐

ARQCARPC生成和校验方法

ARQC:authenticate request cryptogram,授权请求报文 ARPC:authenticate response cryptogram,授权响应报文 AC:application cryptogram,应用密文 AAC:application authenticate cryptogram,应用认证密文 TC:transaction certificate,交易...

weixin_30776273的博客 2631

ARPC 是对ARQC 解密 然后返回一个处理结果?

ARQC,ARPC,GAC1

wcg_jishuo的专栏 797

IC卡工具证书、ARQCARPC、加密解密等

IC卡工具,功能包括:校验ARQC生成ARPC生成MAC,生成CVN,加密解密,国密算法,IC卡证书,SDA静态数据认证,DDA动态数据认证,RSA算法等等

IC卡相关术语

全球的EMV迁移主要是分三个步骤:  第一阶段, 取代所以的银行磁条卡.  第二阶段实现SDA和DDA(脱机数据认证).  第三阶段,实现一卡多应用.  0. ICC (Integrated Circuit Card,集成电路卡)  狭义上的IC卡是 带CPU的集成电路卡 1.Primary Account Number (Pan) 主账号  2.联发卡

Andes Home 千年的塔 -十年技术,风雨兼程 5239

Bank相关4_电子现金电子钱包的区别

1.对普通用户而言,电子钱包和电子现金几乎没有区别,EP和EC都是为了小额支付而生的,就我们拿着一张IC卡去超市的POS机上消费,或者做公交,只需要轻轻一刷就可以了,用户不必关心也不想关心卡里面是基于EP的应用还是EC的应用。 2.站在智能卡行业的开发者角度来说,区别如下:  首先,我们从应用的角度来看两者的区别:  EP本身是独立于借贷记的一种应用,无论是应用层的通信协议,还是相关的交易流...

wang_zhenwei的博客 618

TC、ARQC、AAC及ARPC校验方式

以下zhepian TC、ARQC、AAC及ARPC校验方式 前提: 1.    获得IC卡AC子密钥,或者获得发卡行AC主密钥     本例: MDKAC             =     C4D689158AD9FB9D23105B91CE046D0E 2.       得到IC卡卡号及卡序列号 本例:        PAN      =     62102201100027

简单 & 执着 1万+

PBOC联机交易中ARQCARPC的计算

金融IC卡在申请联机交易时,终端会进行发卡行认证,验证卡片的合法性,终端通过GAC得到卡片返回的ARQC终端自身产生的ARQC进行比较,如果一致,则说明是由发卡行发行的合法卡片,同时对ARQC及认证码进行3DES计算,返回ARPC,卡片得到ARPC后进行外部认证,用以验证终端的合法性。 计算ARQC的步骤为: 1.发送GAC 2.利用应用主密钥(ARQC KEY即DGI8000前16字节...

weixin_33754065的博客 1528

银联生成ARQC,ARPC,MAC,CVN生成

针对银联生成ARQC,ARPC,还有MAC进行了软加密实现,一般的银行都是进行调用加密机实现,为了方便测试使用自己对其进行了软加密算法实现:   基本帮助类如下: package com.omini.common.utils; import java.nio.ByteBuffer; import java.util.Arrays; /** * @author sandy...

日出东方 2736

AAC、ARQC、TC计算

9F 26 08 F4 FB 71 E7 A6 DC B5 3D  9F 27 01 80  9F 10 13 07 00 01 03 A0 A0 00 01 0A 01 00 00 09 99 92 14 EB 66 5D  9F 37 04 05 97 43 7C  9F 36 02 03 4F  95 05 08 00 04 08 00  9A 03 15 01 05  9C

若尘风 4311

EMV规范学习研究(十)——卡片行为分析

卡片行为分析目的:IC卡可以执行它自己的风险管理以防止发卡行被欺诈或过度的信用风险。详细的IC卡内部风险管理由发卡行自行制定。通过风险管理,IC卡可以决定是联机完成交易或脱机完成交易或要求参考号或拒绝交易。IC卡也可以向发卡行发送一条通知消息。 卡联机/脱机的决定是在卡对产生 AC命令的响应报文中确定的。 ICC通过终端发送的GENERATE AC命令进行回复卡片风险管理结果为AAC、TC、A...

wind_runner的博客 1485

PBOC规范研究之十二 ---外部认证(转)

外部认证 在GAC命令时,当返回ARQC时都会返回8个字节的密文数据,这8个字节的密文数据计算过程如下: 第一. 三种秘钥 在卡片内至少得存如下三种秘钥,其中应用密文主密钥简称ENC,安全报文认证秘钥简称MAC,安全报文加密秘钥简称DEK,其用途见下表1所示: 表1.秘钥及用途 密钥类型 用途 长度 应用密文主...

weixin_34149796的博客 806

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

假设发卡行的IC卡应用密钥如下: PBOC_IMK_AC F0C34A8124CEE0A91A0B034AA97D6EAC PBOC_IMK_ENC D30F45EABC12AC3EF56B0C0D7F8654DE PBOC_IMK_MAC 12B1AC4AF070CC35612BFE2D30AB600D ...

weixin_34280237的博客 1863

金融IC卡 ARQCARPC计算方法和实例

假设发卡行的IC卡应用密钥如下: PBOC_IMK_AC               F0C34A8124CEE0A91A0B034AA97D6EAC PBOC_IMK_ENC             D30F45EABC12AC3EF56B0C0D7F8654DE PBOC_IMK_MAC            12B1AC4AF070CC35612BFE2D30AB600D

hzhlog 的专栏 1万+

IC卡工作密钥体系

原创整理,转账注明出处  http://blog.csdn.net/hittata/article/details/8589368 1.发卡行IC应用中涉及的主密钥  发卡行要一般根据生成四对主密钥,三个对称主密钥,一对非对称主密钥 对称主密钥: 密钥名 说明 简写 发卡行应用密文主密钥 用于AC,ARQC,AR

Andes Home 千年的塔 -十年技术,风雨兼程 2万+

银联Pos术语

银行bank card 商业银行等金融机构及邮政储汇机构向社会发行的,具有消费信用、转账结算、存取现金等全部或 部分功能的信用支付工具。 磁条卡 magnetic stripe card 物理特性符合GB/T 14916标准,磁条记录符合GB/T 15120 、GB/T 15694-1、ISO 7812-2、GB/T17552 标准的银行卡片。 销售点终端 point of

LVXIANGAN的专栏 9518

EMV流程部分说明

当终端向卡发送GenerateAC命令时,IC卡执行卡片行为分析,然后IC卡返回应用密文 应用密文ApplicationCryptogram(AC) 对于脱机批准交易,卡片返回交易证书(TC); 对于联机处理交易,卡片返回授权请求密文(ARQC); 对于脱机拒绝交易,卡片返回应用认证密文(AAC)。 TC可以作为脱机批准交易的凭据,以及确保交易数据未被商户或收单行改  动。 出自Pb

小井---超 3577

银联POS规范总结

《一个菜鸟应用软件工程师的成长故事》(3)   在经过了一个多月的学习之后,我整理了一下POS规范前四章的一些知识点,以下就是我所整理出来的内容。 一、管理功能 1.系统管理   开机自检:硬件检测和自动报警、返回工作状态 程序下载:串行口程序下载、联机应用程序下载 参数管理:出厂参数、下发参数、可设定参数、可联机更改参数 终端状态:正常工作状态、已签退状态、锁定状态    

slj_win的专栏 5524

发卡行圈存脚本是如何生成

如果得到的是发卡行主密钥MDK-MAC,需要联合卡号以及卡片序列号分散成卡片子密钥,具体步骤参见安全规范11.1.4部分。这里不再详述。

lucasma的博客 3405
上一篇: Bank相关2_金融卡IC卡知识50问
下一篇: Bank相关4_电子现金与电子钱包的区别
Wang_Zhenwei
博客等级 码龄11年 315粉丝 113原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值