当前位置:网站首页 > 科技动态 > 正文

PinBlock/PinBuffer的计算方法

什么是PinBlock?

我们在使用ATM进行交易的过程中需要输入个人密码PIN,而PIN是非常重要的用户数据,因此PIN并不直接存储在应用层,而是通过加密键盘进行存储,应用无法直接获取明文密码,加密键盘也会进行特殊处理,一旦被拆解会进行密钥销毁。那么ATM的控制端ATMC如何与银行主机验密呢?答案就是通过PIN与账号PAN进行运算得出明文PinBlock,然后再用银行主机下发的密钥进行加密。

PinBlock涉及哪几种密钥?(三级密钥管理体系)

  1. 主密钥MasterKey:一般也称为A Key,TMK(Terminal Master Key), LMK(Local Master Key),顾名思义,是终端主密钥,用来加密其它密钥,例如PinKey。通常为银行手动输入或RKL远程下发。
  2. 工作密钥PinKey:持卡人密码的加密传输,主机会下发密钥报文,需要使用MasterKey解密得到原始的PinKey。

MasterKey和PinKey都会存储在加密键盘中,通过XFS工具获取KCV(Key Check Value,也叫KVV,CVV)来判断是否输入正确。

如何计算PinBlock

计算PinBlock分为三部分:1.计算MasterKey 2.计算PinKey 3.计算PinBlock

计算MasterKey

MasterKey分为A B两部分,每部分由32位HEX组成。如:
Part A:D045A1431AB0D35D1C8FC8FBA1DCFB10
Part B:5B155E08A8208CD5852C259D49D95E0D

1. 通过异或得到MasterKey D045A1431AB0D35D1C8FC8FBA1DCFB10 XOR 5B155E08A8208CD5852C259D49D95E0D => 8B50FF4BB2905F8899A3ED66E805A51D 2. MasterKey与32位0的3DES加密得到MasterKey的KVV,与银行给的KVV进行对比看是否有无 8B50FF4BB2905F8899A3ED66E805A51D TriDES加密 00000000000000000000000000000000 => FB1FFEF37FA41991FB1FFEF37FA41991 

计算PinKey

假设银行主机下发的PinKey密文为 7696F26BB074F23FB4E164ED74CF2C4B

1. 使用MasterKey对PinKey密文进行3DES解密 8B50FF4BB2905F8899A3ED66E805A51D TriDES解密 7696F26BB074F23FB4E164ED74CF2C4B => 7AFB38EADFABA7139B13A43E616DC8E3 2. 解密后的PinKey与32位0进行3DES加密得到PinKey的KCV 7AFB38EADFABA7139B13A43E616DC8E3 TriDES加密 00000000000000000000000000000000 => 7F509DBD79C030607F509DBD79C03060 

计算PinBlock(ANSI标准)

假设PIN为 ,账号PAN为00022
按照ANSI X9.8/ISO9564-1 Format0标准填充:
PIN: 0FFFFFFFF (0+长度+PIN+填充F,共16位)
PAN: 00002 (0000+去除最后一位校验位的最右12位PAN)

1. 明文PinBlock通过PAN异或PAN获得 0FFFFFFFF XOR 00002 => 0FFFFFFFD 2. 密文PinBlock通过使用PinKey对明文3DES加密得到 7AFB38EADFABA7139B13A43E616DC8E3 TriDES加密 0FFFFFFFD => D78DF98 3. 应用层中若使用到PinBuffer,则进行转换,规则简单总结就是 +30找对应的ASCII码 D78DF98 => =78=?98 

那么以上就是计算PinBlock的方法了,本人从事ATM金融电子行业,希望大家多多交流,感谢阅读。

版权声明


相关文章:

  • html中表单标签有哪些2024-10-20 19:30:04
  • cmacua2024-10-20 19:30:04
  • jstl标签ifelse2024-10-20 19:30:04
  • 华为ict网络技术大赛2024-10-20 19:30:04
  • 如何win10关闭系统更新2024-10-20 19:30:04
  • qt中radiobutton的用法2024-10-20 19:30:04
  • 思科路由器密码设置规则2024-10-20 19:30:04
  • 查看linux定时任务2024-10-20 19:30:04
  • mysql定时任务每天固定时间执行2024-10-20 19:30:04
  • Java实现定时任务2024-10-20 19:30:04