【技术实现步骤摘要】
本专利技术属于信息安全领域,特别涉及一种安全快速的数据签名方法。
技术介绍
现有技术中,卡片对用户身份认证时,首先需要卡片组织待签名的数据,根据卡片内部保存的私钥计算公钥,然后再用计算得到的公钥对待签名数据进行签名操作,完成对用户身份认证;本专利技术技术人员发现,采用现有技术对用户身份认证的过程中,卡片需要耗费大量时间进行计算,延长了签名时间。
技术实现思路
为了解决现有技术的缺陷,本专利技术提供一种安全快速的数据签名方法,其特征在于,包括:步骤S1:卡片上电;步骤S2:所述卡片等待接收上位机下发的指令,并判断所述指令的类型,如果是导入私钥指令,则执行步骤S3;如果是数据签名指令,则执行步骤S4;步骤S3:所述卡片从所述导入私钥指令中获取密文,采用预设解密算法和预设密钥对所述密文进行解密得到私钥,保存所述私钥,返回步骤S2;步骤S4:所述卡片判断自身内部是否存在中间值,是则执行步骤S9;否则执行步骤S5;步骤S5:所述卡片判断是否存在私钥,是则获取所述私钥,对所述私钥进行计算得到公钥,保 ...
【技术保护点】
一种安全快速的数据签名方法,其特征在于,包括:步骤S1:卡片上电;步骤S2:所述卡片等待接收上位机下发的指令,并判断所述指令的类型,如果是导入私钥指令,则执行步骤S3;如果是数据签名指令,则执行步骤S4;步骤S3:所述卡片从所述导入私钥指令中获取密文,采用预设解密算法和预设密钥对所述密文进行解密得到私钥,保存所述私钥,返回步骤S2;步骤S4:所述卡片判断自身内部是否存在中间值,是则执行步骤S9;否则执行步骤S5;步骤S5:所述卡片判断是否存在私钥,是则获取所述私钥,对所述私钥进行计算得到公钥,保存所述公钥,执行步骤S6;否则报错,返回步骤S2;步骤S6:所述卡片获取自身保存 ...
【技术特征摘要】
1.一种安全快速的数据签名方法,其特征在于,包括:
步骤S1:卡片上电;
步骤S2:所述卡片等待接收上位机下发的指令,并判断所述指令的类型,
如果是导入私钥指令,则执行步骤S3;如果是数据签名指令,则执行步骤S4;
步骤S3:所述卡片从所述导入私钥指令中获取密文,采用预设解密算法和
预设密钥对所述密文进行解密得到私钥,保存所述私钥,返回步骤S2;
步骤S4:所述卡片判断自身内部是否存在中间值,是则执行步骤S9;否则
执行步骤S5;
步骤S5:所述卡片判断是否存在私钥,是则获取所述私钥,对所述私钥进
行计算得到公钥,保存所述公钥,执行步骤S6;否则报错,返回步骤S2;
步骤S6:所述卡片获取自身保存的用户身份信息,计算所述用户身份信息
的长度;
步骤S7:所述卡片获取自身保存的数据信息,对所述用户身份信息、所述
用户身份信息的长度、所述数据信息进行计算得到第一结果;
步骤S8:所述卡片对所述第一结果和所述公钥计算得到中间值,保存所述
中间值;
步骤S9:所述卡片从所述数据签名指令中获取卡外随机数,根据所述卡外
随机数组织待签名数据,采用预设算法对所述私钥、所述中间值和所述待签名
数据进行签名,得到签名结果,向所述上位机发送包含所述签名结果的签名响
应,返回步骤S2。
2.如权利要求1所述的方法,其特征在于,所述数据信息包括:第一元素、
第二元素、第三元素、第四元素;所述卡片对所述用户身份信息、所述用户身
份信息的长度、所述数据信息进行计算得到第一结果,具体为:
所述卡片将所述用户身份信息的长度、所述用户身份信息、所述第一元素、
所述第二元素、所述第三元素和所述第四元素顺序拼接,得到的结果作为第一
\t结果。
3.如权利要求1所述的方法,其特征在于,所述步骤S8具体为:
所述卡片将所述第一结果与所述公钥顺序拼接,对得到的拼接结果做哈希
计算,得到的哈希结果作为中间值并保存。
4.如权利要求1所述的方法,其特征在于,所述步骤S6之前,还包括:
所述卡片判断是否存在第一结果,是则获取所述第一结果,执行步骤S8;
否则执行步骤S6;
所述步骤S7,还包括:保存所述第一结果。
5.如权利要求1所述的方法,其特征在于,所述采用预设算法对所述私钥、
所述中间值和所述待签名数据进行签名,得到签名结果,具体为:
步骤X1:所述卡片将所述中间值和所述待签名数据顺序拼接,对得到的拼
接结果进行哈希计算,得到第一计算结果;
步骤X2:所述卡片生成卡片随机数,获取自身保存的第三元素和第四元素,
根据所述卡片随机数、所述第三元素和所述第四元素计算,得到第一数值;
步骤X3:所述卡片获取自身保存的第五元素,根据所述第一计算结果、所
述第一数值和所述第五元素计算,得到签名结果的第一部分数据;
步骤X4:所述卡片判断所述签名结果的第一部分数据是否符合预设条件,
是则返回步骤X2;否则执行步骤X5;
步骤X5:所述卡片根据所述私钥、所述卡片随机数、所述签名结果的第一
部分数据和所述第五元素计算,得到签名结果的第二部分数据,执行步骤X6;
步骤X6:所述卡片判断所述签名结果的第二部分数据是否等于0,是则返
回步骤X2;否则执行步骤X7;
步骤X7:所述卡片将所述签名结果的第一部分数据和所述签名结果的第二
部分数据顺序拼接,将得到的拼接结果作为签名结果。
6.如权利要求1所述的方法,其特征在于,所述得到签名结果之后,还包
括:
所述卡片判断是否成功进行签名操作,是则向所述上位机发送包含所述签
名结果的签名响应,返回步骤S2;否则向所述上位机发送签名失败信息,返回
步骤S2。
7.如权利要求1所述的方法,其特征在于,所述数据签名指令是动态数据
认证指令;
上位机下发的指令是动态数据认证指令时,还包括:所述卡片判断所述动
态数据认证指令是否合法,是则执行步骤S4;否则向所述上位机发送动态数据
认证指令不合法信息,返回步骤S2;
所述根据所述卡外随机数组织待签名数据,具体为:所述卡片生成卡片动
态随机数,将自身保存的第一数据、所述卡片动态随机数的长度、所述卡片动
态随机数和所述卡外随机数顺序拼接,将得到的拼接结果作为待签名数据。
8.如权利要求7所述的方法,其特征在于,所述卡片判断所述动态数据认
证指令是否合法,具体为:
步骤a1:所述卡片判断所述动态数据认证指令的第一字节的取值是否为
0X00,是则执行步骤a2;否则向所述上位机发送动态数据认证指令不合法信息,
返回步骤S2;
步骤a2:所述卡片判断所述动态数据认证指令的第三、第四字节的取值是
否为0X00、0X00,是则执行步骤a3;否则向所述上位机发送动态数据认证指令
不合法信息,返回步骤S2;
步骤a3:所述卡片从所述动态数据认证指令的第六字节开始获取至最后一
个字节上的数据,计算获取到的数据的长度,判断所述动态数据认证指令的第
五字节的取值是否与所述获取到的数据的长度相同,是则执行步骤a4;否则向
所述上位机发送动态数据认证指令不合法信息,返回步骤S2;
步骤a4:所述卡片获取预先保存的应用交互特征,根据所述应用交互特征
判断是否支持动态数据认证操作,是则执行步骤S4;否则向所述上位机发送动
态数据认证指令不合法信息,返回步骤S2。
9.如权利要求1所述的方法,其特征在于,所述数据签名指令是快速认证
指令;
上位机下发的指令是快速认证指令时,还包括:所述卡片判断所述快速认
证指令是否合法,是则执行步骤S4;否则向所述上位机发送快速认证指令不合
法信息,返回步骤S2;
所述根据所述卡外随机数组织待签名数据,具体为:所述卡片获取自身保
存的关键信息,将所述卡外随机数与所述关键信息顺序拼接,将拼接结果作为
待签名数据。
10.如权利要求9所述的方法,其特征在于,所述卡片判断所述快速认证
指令是否合法,具体为:
步骤b1:所述卡片判断所述快速认证指令的第一字节的取值是否为0X80,
是则执行步骤b2;否则向所述上位机发送快速认证指令不合法信息,返回步骤
S...
【专利技术属性】
技术研发人员:陆舟,于华章,
申请(专利权)人:飞天诚信科技股份有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。