POS机如何验证工作密钥
2018-10-15 本文已影响0人
Jack_6a46
Pos机每次签到时,POS中心向POS终端下发新的工作密钥。
若62域的长度应该为24或40或60,否则认为格式有误。
单倍长密钥算法–域长度为24字节
对于单倍长密钥算法,前12个字节为PIN的工作密钥的密文,后12个字节为MAC的工作密钥的密文。其中,前8个字节是密文,后4个字节是checkvalue;前八个字节解出明文后,对8个数值0做单倍长密钥算法,取结果的前四位与checkvalue的值比较应该是一致的。
双倍长密钥算法–域长度为40字节
对于双倍长密钥算法,前20个字节为PIN的工作密钥的密文,后20个字节为MAC的工作密钥的密文。(16字节的密文+4字节的checkvalue);
而MAC工作密钥,前8个字节是密文,再8个字节是二进制零,后四个字节是checkvalue;前八个字节解出明文后,对8个数值0做单倍长密钥算法,取结果的前四位与checkvalue的值比较应该是一致的。
三个工作密钥–域长度为60字节
对于支持磁道加密的签到报文来说,62域的长度为60个字节,采用双倍长密钥算法,前20个字节为PIN的工作密钥的密文,中间20个字节为MAC的工作密钥,后面20个字节为TDK的工作密钥的密文。
对于“TDK工作密钥”来说,前16个字节是密文,后4个字节是checkvalue.前16个字节解出明文后,对8个数值0做双倍长密钥算法,取结果的前四位与checkvalue的值比较应该是一致的。