ARQC與ARPC的生成和校驗方法


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)

 


免責聲明!

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



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