金融行业里的加解密问题(你能解答得了吗?)

来源:互联网 发布:淘宝的全屏海报尺寸 编辑:程序博客网 时间:2024/05/01 02:30

金融行业里下面这个题目:觉得挺有代表性

1)以下是签到响应的报文:

00 69 60 00 00 00 03 00 00 00 22 00 00 08 10 00 38 00 01 0A 

C0 00 14 00 00 04 18 58 35 03 13 08 00 01 00 00 31 36 32 31 
34 36 30 30 30 31 30 33 30 30 31 32 33 34 31 32 33 34 31 32 
33 34 35 31 32 33 34 35 31 32 33 34 35 00 11 00 00 00 01 00 
10 00 24 F9 27 14 E8 0E 83 2E DC AD C6 7D 84 4B F6 E9 1B 1E 
3A 9D 81 AD C6 7D 84
 
A) 请按你的理解将报文的相关信息分析出来。
答:以下分析按报文字节流顺序来。
00 69 :除报文最前面两字节“00 69”外,整个消息报文的长度。这里0x000x69=105个字节,是pos机签到报文的长度,包括TPDU和报文头的长度。
60 00 00 00 03 :TPDU.
00 00 00 22 00 00 :报文头,按顺序,00--应用类别(但银联文档中只定义了60~63),00--软件总版本号,0--终端状态,0--pos中心处理要求,22 00 00 --软件分版本号。
08 10 :消息类型。
00 38 00 01 0A C0 00 14 :位图bitmap。
00 00 04 :11域, POS终端交易流水。
18 58 35 :12域,POS端交易时间.
03 13 :13域,POS端交易日期。
08 00 01 00 00 :32域,受理方标识码。
31 36 32 31 34 36 30 30 30 31 30 33 :37域,检索参考号。
30 30 :39域,应答码”00”,用的16进制字符0x300x30表示。
31 32 33 34 31 32 33 34 :41域,POS机终端标识码。
31 32 33 34 35 31 32 33 34 35 31 32 33 34 35 :42域,受卡方标识码。
00 11 00 00 00 01 00 10 :60域,自定义域,00 11--右靠压缩BCD码,表示这个域的数据长度11个字节,用左靠压缩BCD码6个字节数据,00--60.1消息类型码,00 00 01--60.2批次号,001--60.3网络信息管理码(001表示终端用单倍长密钥算法),最后个一个0作为填充(无实际意义)。
00 24 F9 27 14 E8 0E 83 2E DC AD C6 7D 84 4B F6 E9 1B 1E 3A 9D 81 AD C6 7D 84 :62域,自定义域,这里是终端密钥。


B) 将你分析出来的工作密钥数据,用TMK解出明文的TPK和TAK,并描述其验证过程及结果。
假定TMK(Hex格式): 32 33 34 35 36 37 38 39








C) 用解出来的TAK,对上面的整个签到响应报文数据进行算MAC,并描述你的算法过程及结果。
 
D) 用解出来的TPK,分别对"111111"(6个1)和"111111111111"(12个1)的PIN进行加密码,并描述你的算法过程及结果。
 
2) 请根据给出的TMK(数据格式为Hex),以下面给出的明文进行加密,并生成62域所需密钥数据,并描述过程与步骤。
   TMK:  30 31 32 33 34 35 36 37 38 39 41 42 43 44 45 46
   TPK:  38 37 36 35 34 33 32 31 31 32 33 34 35 36 37 38
   TAK:  39 38 37 36 35 34 33 32