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)