zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    POJ 3258 (NOIP2015 D2T1跳石头)
    POJ 3122 二分
    POJ 3104 二分
    POJ 1995 快速幂
    409. Longest Palindrome
    389. Find the Difference
    381. Insert Delete GetRandom O(1)
    380. Insert Delete GetRandom O(1)
    355. Design Twitter
    347. Top K Frequent Elements (sort map)
  • 原文地址:https://www.cnblogs.com/jiftle/p/7026121.html
Copyright © 2011-2022 走看看