(8)pin和mac算法
密码加密算法:
密码明文=2位密码长度+密码明文(若不足8位补’F’) 帐户密码密文=DES(密码明文,PIN密钥)
若个人密码是“123456”, 则帐户密码明文为“06123456” 密文为:
密文=DES(0x060x12/0x34/0x56/0xFF/0xFF/0xFF/0xFF, PINKEY) MAC算法:
MAC算法采用密文块链接(CBC)的模式。 (a):用法
计算出的8个字节的二进制MAC,还需取前4个字节扩展转换成16进制表示的字符串存放在本域中。
扩展方法如下:HEX(2345ABCD) ? “2345ABCD”
一般交易报文中MAC表示成ASCⅡ码是可见的字符(即“0” — “9”、 “A” — “F” 且“A” — “F”是大写)。
(b):MAC消息域的选择
应严格按照消息交换格式定义中规定的域进行选择,以下域出现或条件成立时,就应该包含在MAC计算中。金融类消息包括定制类交易、支付类交易及其冲正和成功的应答。
序号 1 2 3 域 0 2 3 域名 消息类型 主账号 交易处理码 属性 n4 n...19(n+PAN) n6 4 5 6 7 8 9 10 11 12 13 14 15 4 7 11 18 25 32 33 38 39 41 42 90 交易金额 交易传输时间 系统跟踪号 商户类型 服务点条件码 代理机构标识码 发送机构标识码 授权标识应答码 应答码 受卡方终端标识码 受卡方标识码 原始数据元 n12 n10 n6 n4 n2 n..11(LLVAR) n..11(LLVAR) an6 an2 ans8 ans15 n20
(c):.MAC BLOCK 的构成规则
MAC域的构成将根据bitmap中上述域是否出现在消息中来确定。上述域只要出现在消息中,应截下送入MAC计算域;域和域之间应插入一个空格。 ? MAC字符的选择
对所选择的MAC消息域,应进一步作字符处理。除去一些冗余信息,以提高MAC的质量。处理方法如下: ? 在域和域之间插入一个空格; ? 所有的小写字母转换成大写字母;
? 除了字母(A-Z),数字(0-9),空格,逗号(,)和点号(.)以外的字母都删去;
? 删去所有域的打头空格和结尾空格; ? 多余一个的连续空格,由一个空格代替。
? 构成MAC块(MAB)
数据从消息中选择出来后,经MAC字符选择处理,然后构成MAB。构成MAB的方法是:
将MAC字符选择处理后的数据按64BIT划分成64BIT的块,一直划分到数据的最后一块,它的位数小于或等于64BIT,不满64BIT时用“NULL”填充。
(d):MAC计算方法
MAC域(128域)为按照DES算法计算MAC得到的8字节二进制数据的前半部分(4字节二进制数),表示成16进制字符串形式(8个16进制字符)。具体如下:
参与报文校验码(MAC)的数据由三部分产生:初始数据,原始数据,补位数据。
MAC算法如下:
1)算法定义:采用DES CBC算法。
2)初始数据:0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00。 3)原始数据:
4)补位数据:若原始数据不是8的倍数,则右补齐0x00。若原 始数据为8的整数倍,则不用补齐0x00。 5)密 钥:MAC密钥。
MAC的产生由以下方式完成:(最后一组数据长度若不足8的倍数,则右补齐0x00;若数据长度为8的整数倍,则无需补充0x00)。
MAC签名计算流程图:
初始数据Block #1Block #2Block #3Block #NXORXORXORXORDESDESDESDESMACKEYKEYKEYKEY
四 通讯线路
工行连接公共支付平台的通讯物理线路复用现有工行的atm,pos系统连接银联的物理线路。
连接公共支付平台的线路是可以最多4对的单工长连接。端口号及端口数量待测试和上线的时候双方协调分配。
五 清算模式
待定。