EMV/PBOC之关于fDDA01算法

PBOC3.0规范中QPBOC部分,增加了fDDA01算法, 简单来讲,相比较00算法,加了几个tag用于签名,相对安全一些. 下面站在终端的角度详细说说.

 

首先,在9f66原来缺省的第四个字节的bit8, 要指明终端支持哪个算法, 1表示fDDA01, 0表示fDDA00算法.这个值很关键,因为在PDOL中要送给卡片,卡片要把这个值作为用哪个算法的其中一个决定因素.

 

如果卡片本身支持fDDA01算法, 且决定了用这个算法, 它会把内部的tag9f69(卡片认证相关数据)置为1,表明自己用这个算法,这个tag会在读数据阶段送给终端. 同时在计算签名时,卡片会把不可预知数(终端, tag 9f37)、授权金额、交易货币代码,连接上卡片ATC和卡片认证相关数据(tag 9f69)作为输入数据.

 

fDDA00算法时,DDA阶段, 终端计算hash值时,输入数据是:

从签名中恢复的部分数据(其中有ATC)+ 不可预知数

 

当终端从获取的9f69中确认卡片用的是fDDA01算法时,计算hash值时,输入数据是:

从签名中恢复的部分数据(其中有ATC)+ 不可预知数 +授权金额 +交易货币代码 + 卡片认证相关数据

 

后面的步骤都和PBOC2.0一样了.

你可能感兴趣的:(tag,终端,pboc,FDDA)