80 FA 00 00 08 11 22 33 44 55 66 77 88
27
2. 通用DES 计算初始化(INIT_FOR_ DESCRYPT)
使用SAM卡计算MAC:
1、 终端向CPU卡发送GET CHALLENGE指令,取得4字节随机数,后补“0x00000000”,得到的8字节结果作为MAC计算的初始值。
2、 通用DES初始化
80 1A + P1(密钥用途)+ P2(密钥版本)+ Lc + DATA(分散因子)
3、 通用DES计算
80 FA + P1 + P2(00) + Lc + DATA(8字节随机数+)+ “04D6960024 + val + 0x8000…”
这里P1的取值是关键:00001001,即05,代表有初始值的MAC计算
返回数据即为4字节MAC
线路加密计算:
具体计算方式同DES/3DES算法,这里介绍的是如何使用SAM卡加密。
1、通用DES初始化
80 1A + P1(密钥用途)+ P2(密钥版本)+ Lc + DATA(分散因子)
2、通用DES计算
80 FA + P1 + P2(00) + Lc + “明文”
这里P1的取值是关键:00000000,即00,代表无后续快的加密计算
返回数据即为加密得到的密文
22
使用SAM卡计算MAC:
1、 终端向CPU卡发送GET CHALLENGE指令,取得4字节随机数,后补“0x00000000”,得到的8字节结果作为MAC计算的初始值。
2、 通用DES初始化
80 1A + P1(密钥用途)+ P2(密钥版本)+ Lc + DATA(分散因子)
3、 通用DES计算
80 FA + P1 + P2(00) + Lc + DATA(8字节随机数+)+ “04D6960024 + val + 0x8000…”
这里P1的取值是关键:00001001,即05,代表有初始值的MAC计算
返回数据即为4字节MAC
线路加密计算:
MAC
计算同样遵循《中国金融集成电路(IC
)卡规范》,数据的填充在卡
片外面
进行,卡片只支持长度为8 的整数倍数据的MAC 计算。
DES CRYPT 命令必须在INIT_FOR_ DESCRYPT 命令成功执行后才能
进行。卡片状态在执行无后续块计算后,复原为通用DES 计算初始化执行前的
状态。