一、MAC算法介绍
在POS (Point of Sale) 系统中,MAC (Message Authentication Code) 算法用于保证交易数据的完整性和身份验证。以下是POS中常见的MAC算法:
-
ANSI X9.9:美国国家标准协会(ANSI)发布的银行卡MAC算法标准,是POS系统中最常用的MAC算法之一。
-
ISO 9797-1:国际标准化组织(ISO)发布的银行卡MAC算法标准,也是POS系统中常见的MAC算法之一。
-
FIPS 198:美国联邦信息处理标准(FIPS)下发的MAC算法标准,可用于保护数据的完整性和保密性。
-
EMV MAC算法:针对智能卡支付交易的MAC算法,是POS系统中较新的MAC算法标准。
这些MAC算法都是基于加密哈希函数、对称加密或异或等技术实现的,用于计算消息鉴别码。在POS系统中,MAC算法可用于保护交易数据不被篡改和保护交易的安全性。
二、POS终端MAC的算法
POS终端采用ECB的加密方式,简述如下:
a) 将欲发送给POS中心的消息中,从消息类型(MTI)到63域之间的部分构成MACELEMEMENT BLOCK (MAB)。
b) 对MAB,按每8个字节做异或(不管信息中的字符格式),如果最后不满8个字节,则添加“0X00”。
示例:
MAB = M1 M2 M3 M4
其中:
M1 = MS11 MS12MS13 MS14 MS15 MS16 MS17 MS18
M2 = MS21 MS22MS23 MS24 MS25 MS26 MS27 MS28
M3 = MS31 MS32MS33 MS34 MS35 MS36 MS37 MS38
M4 = MS41 MS42MS43 MS44 MS45 MS46 MS47 MS48
按如下规则进行异或运算:
MS11MS12 MS13 MS14 MS15 MS16 MS17 MS18
XOR) MS21 MS22 MS23 MS24MS25 MS26 MS27 MS28
---------------------------------------------------
TEMP BLOCK1 = TM11 TM12 TM13 TM14 TM15 TM16 TM17