金融IC卡 ARQC和ARPC計算方法和實例(轉)


假設發卡行的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
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM