磁道加密算法
4.4.1 基本要求
PIN输入设备需对下列磁道信息中敏感信息进行加密:
发卡方信息(包括卡片验证码CVN等信息)。
加密采用双倍长密钥算法,磁道信息加密密钥TDK通过POS签到交易获得,存储在PIN输入设备中。
4.4.2 数据源构成(二磁道、三磁道)
- 二磁道数据(35域)从结束标志“?”向左第2个字节开始,再向左取8个字节作为参与加密的二磁道中发卡方信息,记为TDB2。
- 类似二磁道数据源构造方法,三磁道数据(36域,如果存在)磁道信息块构造方法如下:
三磁道数据(36域)从结束标志“?”向左第2个字节开始,再向左取8个字节作为参与加密的三磁道中发卡方信息(若不足右补足F),记为TDB3。
4.4.3 加密方式
采用双倍长密钥TDK分别对TDB2,TDB3进行加密,将密文输出后按照对应位置替换原先的明文数据。
举例:
二磁道数据(37):
1234567890123456789=0508201781999168302
表示为:
0x12 0x34 0x56 0x78 0x90 0x12 0x34 0x56 0x78 0x9D 0x05 0x08 0x20 0x17 0x81 0x99 0x91
0x68 0x30 0x20
三磁道数据(104):
991234567890123456789=1560000000000000000003781999216000005080000000000000
00000000=000000000003=0000000000
表示为:
0x99 0x12 0x34 0x56 0x78 0x90 0x12 0x34 0x56 0x78 0x9D 0x15 0x60 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x03 0x78 0x19 0x99 0x21 0x60 0x00 0x00 0x50 0x80 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0xD0 0x00 0x00 0x00 0x00 0x00 0x3D 0x00 0x00 0x00 0x00
0x00
则TDB2表示为:0x08 0x20 0x17 0x81 0x99 0x91 0x68 0x30
则TDB3表示为:0x00 0x00 0x00 0x3D 0x00 0x00 0x00 0x00
采用TDK对TDB2、TDB3分别进行TDES加密,加密后的磁道信息为:
ENC BLOCK1 = eTDK(0x08 0x20 0x17 0x81 0x99 0x91 0x68 0x30)
ENC BLOCK2 = eTDK(0x00 0x00 0x00 0x3D 0x00 0x00 0x00 0x00)