处理阶段执行,具体触发条件及用到的具体指令可以根据具体应用设定。
[0040]例如:通过设置数据指令,可以约定某个数据元为SM2签名预存数据设定数据元。执行该数据元对应的设置数据指令则可以触发卡片生成并预存储SM2签名预存数据。若指定该数据元标志为Df91,则可以通过“04 DA df 91 01 05”指令触发。其中04 DA为PB0C规范中规定的指令标识,01为数据域长度,05为要触发卡片存入的SM2签名预存数据组数。
[0041]并且,由于卡片兼容没有预存SM2签名预存数据的机制,在触发条件满足之前仍然可以进行原始交易流程。
[0042]3.当当前交易指令对时间没有严格限制时,则卡片自动触发预存SM2签名预存数据。此操作可以在联机处理过程触发。实际应用中,该交易指令可为与联机操作过程等相关指令,交易时间较充足。
[0043]在本发明实施例中,上述的SM2签名预存数据包括:随机数,以及其与基点的点乘结果。
[0044]上述步骤S102,根据SM2签名预存数据进行动态数据认证。当经过步骤S101对SM2签名预存数据进行预存储后,在动态数据认证的过程中即可直接调用预存储的SM2签名预存数据,从而可缩短认证过程需要的计算时间。
[0045]如图2所示,本发明实施例的交易动态数据认证方法还可包括一对SM2签名预存数据进行更新的步骤(步骤S103)。具体地,如图3所示,该对SM2签名预存数据进行更新的步骤包括:
[0046]步骤S1031:对动态数据认证过程中使用的SM2签名预存数据进行失效处理,使动态数据认证过程中使用的SM2签名预存数据失效。
[0047]在具体实施时,如果参数重复使用会造成安全隐患,因此,预存的SM2签名预存数据一旦使用一次后立即失效。该失效过程在动态数据认证中完成。
[0048]步骤S1032:判断多组SM2签名预存数据是否全部失效,或存储多组SM2签名预存数据的存储空间是否空余;步骤S1033:当判定结果为是时,触发补充预存储SM2签名预存数据过程,以对SM2签名预存数据进行更新;而当判定结果为否时,则说明当前仍有可用的SM2签名预存数据,不需要对SM2签名预存数据进行补充预存储。
[0049]SM2签名预存数据可以重新备份,即补充预存SM2签名预存数据。可以通过终端,或卡片本身触发补充预存SM2签名预存数据的操作。其中,可以在所有备份数据均失效后触发补充预存SM2签名预存数据,也可以在备份存储空间有空余时触发补充预存SM2签名预存数据,这样可以保证循环多次进行快速交易。
[0050]并且,即使预存储的SM2签名预存数据全部失效后也不影响正常交易。卡片支持传统的SM2签名功能,即在没有SM2签名预存数据的前提下仍能进行脱机数据认证,只是认证时间相对较长。这样可以更好的兼容已有应用。
[0051]在一实施例中,上述的补充预存储SM2签名预存数据过程可至少在以下两个阶段进行:
[0052]1.由终端发送发卡行脚本指令触发预存:首先接收终端发送的发卡行脚本指令,根据该发卡行脚本指令触发预存,预存储SM2签名预存数据。此操作可以在发卡行脚本处理阶段执行,具体触发条件及用到的具体指令可以根据具体应用设定。例如:通过设置数据指令,可以约定某个数据元为SM2签名预存数据设定数据元。执行该数据元对应的设置数据指令则可以触发卡片生成并预存储SM2签名预存数据。若指定该数据元标志为Df91,则可以通过“04 DA df 91 01 05”指令触发。其中04 DA为PB0C规范中规定的指令标识,01为数据域长度,05为要触发卡片存入的SM2签名预存数据组数。
[0053]并且,由于卡片兼容没有预存SM2签名随机数数据的机制,在触发条件满足之前仍然可以进行原始交易流程。
[0054]2.当当前交易指令对时间没有严格限制时,则卡片自动触发预存SM2签名预存数据。此操作可以在联机处理过程触发。实际应用中,该交易指令可为与联机操作过程等相关指令。
[0055]以下结合具体示例对本发明实施例的交易动态数据认证方法进行详细说明。
[0056]在实际应用中,本发明实施例的交易动态数据认证方法可至少应用在以下两种机制中:
[0057]〈一〉完全由卡片自身触发的机制。
[0058]此机制的优点在于,不需要终端介入,在卡片内部即可达到优化效果。
[0059]1.在个人化阶段触发预存机制,使卡片将多组备份数据(即上述的SM2签名预存数据)存入内存中,每组数据包括64个字节的点坐标k*G,以及随机数k。
[0060]2.在执行动态数据认证时判断是否存在可用的备份数据,如果有,则直接读取用于签名,取用后该签名随机数据立即失效。如果不存在可用的备份数据,则卡片生成随机数并顺序生成签名。
[0061]3.联机处理过程结束后,如果有效预存数据组数小于指定值,则卡片触发预存储SM2签名预存数据过程,填充预存数据。
[0062]< 二 >由终端配合触发的机制。
[0063]此机制的优点在于,可以及时更新备份数据。
[0064]1.在个人化阶段触发预存机制,使卡片将多组备份数据(即上述的SM2签名预存数据)存入内存中,每组数据包括64个字节的点坐标k*G,以及随机数k。
[0065]2.执行动态数据认证时判断是否存在可用的备份数据,如果有,则直接读取用于签名,取用后该签名随机数据立即失效。如果不存在可用的备份数据,则卡片生成随机数并顺序生成签名。卡片可以通过本次脱机数据相关指令(例如获取处理指令,内部认证指令等)返回指定数据给终端,提示已经没有有效的备份数据,也可以在之后的应用选择或应用初始化过程中通过指令(例如选择应用指令,获取处理指令等)将当前SM2签名预存数据情况反馈给终端。
[0066]3.终端根据预定的协议,在终端行为分析,联机处理或发卡行脚本处理时提示卡片预存新的SM2签名预存数据,以备之后交易使用。
[0067]本发明实施例还提供一种交易动态数据认证系统,如图4所示,该交易动态数据认证系统主要包括:签名数据预存储单元1及动态数据认证单元2等。
[0068]上述的签名数据预存储单元1用于预存储多组SM2签名预存数据。在具体实施时,签名数据预存储单元1执行的对于SM2签名预存数据的预存储过程可至少在以下三个阶段进行:
[0069]1.卡片个人化时存入:个人化是指卡片投入使用前的数据输入过程,数据会以数据块的形式写入卡片中,如果在此时预存SM2签名预存数据,则可以通过特定数据块的写入或个人化结束等条件触发预存。
[0070]2.由终端发送发卡行脚本指令触发预存:首先接收终端发送的发卡行脚本指令,根据该发卡行脚本指令触发预存,预存储SM2签名预存数据。此操作可以在发卡行脚本处理阶段执行,具体触发条件及用到的具体指令可以根据具体应用设定。例如:通过设置数据指令,可以约定某个数据元为SM2签名预存数据设定数据元。执行该数据元对应的设置数据指令则可以触发卡片生成并预存储SM2签名预存数据。若指定该数据元标志为Df91,则可以通过“04 DA df 91 01 05”指令触发。其中04 DA为PB0C规范中规定的指令标识,01为数据域长度,05为要触发卡片存入的SM2签名预存数据组数。
[0071]并且,由于卡片兼容没有预存SM2签名随机数数据的机制,在触发条件满足之前仍然可以进行原始交易流程。
[0072]3.当当前交易指令对时间没有严格限制时,则卡片自动触发预存SM2签名预存数据。此操作可以在联机处理过程触发。实际应用中,该交易指令可为与联机操作过程等相关指令。
[0073]在本发明实施例中,上述的SM2签名预存数据包括:随机数,以及其与基点的点乘结果。
[0074]上述动态数据认证单元2,用于利用SM2签名预存数据进行动态数据认证。当经过签名数据预存储单元1对SM2签名预存数据进行预存储后,在动态数据认证单元2所执行的动态数据认证的过程中即可直接调用预存储的SM2签名预存数据,从而可缩短认证过程需要的计算时间。
[0075]如图5所示,本发明实施例的交易动态数据认证系统还可包括一对SM2签名预存数据进行更新的签名预存数据更新单元3。具体地,如图6所示,该签名预存数据更新单元3具体包括:
[0076]失效处理模块31,用于对动态数据认证过程中使用的SM2签名预存数据进行失效处理,使动态数据认证过程中使用的SM2签名预存数据失效。
[0077]在具体实施时,如果参数重复使用会造成安全隐患,因此,预存的SM2签名预存数据一旦使用一次后立即失效。