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


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

    计算ARQC的步骤为:

    1.发送GAC

    2.利用应用主密钥(ARQC KEY即DGI8000前16字节)对ATC前补000000000000与ATC的反前补000000000000拼接的数据(如ATC为0001,则这里是0000000000000001000000000000FFFE)做3DES加密算出过程密钥SKAC,

    3.组织数据授权金额至不可预知数(TAG 9F49的值,动态数据认证时发内部认证的数据),加上AIP、ATC、卡片验证结果补80,

    4.用过程密钥SKAC对上述组织的数据进行MAC计算即可得到ARQC的值举例如下:

    1.终端发送GAC:80AE8000340000000012340000000000340156D86004A800015612051601010101010903200000000000000000000000000000000000000000

    卡片返回:801E80000EF294D7022FA9B05807020103A4B904010A0100000000001BFC423C

    卡片应用子密钥(DGI8000前16字节):0D2E3CB0BC1F9E03AED58F663A2F9679

    可知ATC=000E ARQC=F294D7022FA9B058 卡片验证结果为:03A4B904 AIP:7C00

    2.用卡片应用子密钥0D2E3CB0BC1F9E03AED58F663A2F9679对000000000000000E000000000000FFF1做3DES加密得到过程密钥SKAC:C3D3F062E9992B4E923D338D66193526

    3.从GAC返回数据及AIP等进行数据组织:0000000012340000000000340156D86004A80001561205160101010101+7C00+000E+03A4B904+800000

    4.用SKAC对上述数据做PBOCMac计算得到:F294D7022FA9B058

    ARPC的计算过程相对简单:

    1.将ARQC与服务码+6字节0进行异或

    2.用计算ARQC的过程密钥对异或结果进行3DES加密(过程密钥与上述ARQC计算相同)即为ARPC

    3.卡片利用终端返回的ARPC+服务码进行外部认证

    举例如下:

    采用上述GAC返回的ARQC:F294D7022FA9B058

    1.F294D7022FA9B058和3030000000000000异或C2A4D7022FA9B058

    2.用C3D3F062E9992B4E923D338D66193526进行3DES加密得到结果ARPC:3846EEB4C8D34271

    3.外部认证:008200000A 3846EEB4C8D34271 3030

    文章来源:SingCard的博客

    原文: https://www.duoluodeyu.com/2313.html

  • 相关阅读:
    区间筛——模板
    I NEED A OFFER!
    dp入门(A)
    java如何创建类
    二维数组
    一维数组
    循环练习记录
    根据浏览器屏幕分辨率不同使用不同的css样式——响应式
    jquery 淡入淡出动画效果例子
    toggle()在新闻热点上的运用
  • 原文地址:https://www.cnblogs.com/jiftle/p/7026121.html
Copyright © 2020-2023  润新知