CN102685121A - 一种数字签名方法和装置 - Google Patents
一种数字签名方法和装置 Download PDFInfo
- Publication number
- CN102685121A CN102685121A CN201210135512XA CN201210135512A CN102685121A CN 102685121 A CN102685121 A CN 102685121A CN 201210135512X A CN201210135512X A CN 201210135512XA CN 201210135512 A CN201210135512 A CN 201210135512A CN 102685121 A CN102685121 A CN 102685121A
- Authority
- CN
- China
- Prior art keywords
- user
- message
- input information
- usb key
- confirm
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 65
- 230000008878 coupling Effects 0.000 claims description 86
- 238000010168 coupling process Methods 0.000 claims description 86
- 238000005859 coupling reaction Methods 0.000 claims description 86
- 230000008676 import Effects 0.000 claims description 43
- 230000001143 conditioned effect Effects 0.000 claims description 41
- 230000008569 process Effects 0.000 claims description 24
- 244000188472 Ilex paraguariensis Species 0.000 claims description 12
- BQCADISMDOOEFD-UHFFFAOYSA-N Silver Chemical compound [Ag] BQCADISMDOOEFD-UHFFFAOYSA-N 0.000 description 6
- 238000005538 encapsulation Methods 0.000 description 6
- 229910052709 silver Inorganic materials 0.000 description 6
- 239000004332 silver Substances 0.000 description 6
- 238000012795 verification Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 2
- 230000002950 deficient Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
Images
Landscapes
- User Interface Of Digital Computer (AREA)
- Storage Device Security (AREA)
Abstract
本发明实施例公开一种数字签名方法和装置,该方法包括以下步骤:通用串行总线USB Key接收来自主机的报文,获取用户输入信息,所述用户输入信息为所述用户输入个人识别密码PIN码的方式,和/或,所述用户输入的PIN码;所述USB Key判断获取的用户输入信息是否与所述USB Key接收到的报文匹配;如果所述获取的用户输入信息与所述USB Key接收到的报文匹配,所述USB Key对所述报文进行数字签名;如果所述获取的用户输入信息与所述USB Key接收到的报文不匹配,所述USB Key返回错误信息或认证失败信息。本发明实施例的技术方案,能够提高PIN码认证和数字签名的安全性。
Description
技术领域
本发明涉及信息安全领域,特别是涉及一种数字签名方法和装置。
背景技术
随着近年来网银安全事件的不断的发生,安全问题成为了网银***的工作重点。目前的网银***中,通常使用USB(Universal SerialBUS,通用串行总线) Key来提高安全防范等级。
USB Key是一种具有USB接口的硬件设备,内置单片机或智能卡芯片,有一定的存储空间,可以存储用户的私钥以及数字证书。当用户使用USB Key登录网银***时,USB Key会先对用户输入的PIN(Personal Identification Number,个人识别密码)码进行验证,并在验证通过时,使用私钥对数据进行加密,进而完成数字签名。
发明人在实现本发明的过程中,发现现有技术至少存在以下缺陷:
现有技术中的USB Key通常具有唯一的PIN码,USB Key中的私钥也是唯一的,当PIN码泄露时,会对网银的安全造成巨大的威胁,因此,现有的数字签名方法的安全性较低,无法保障网银***的安全。
发明内容
本发明实施例提供了一种数字签名方法和装置,用于提高PIN码认证和数字签名的安全性。
本发明实施例提供了一种数字签名方法,包括以下步骤:
通用串行总线USB Key接收来自主机的报文,获取用户输入信息,所述用户输入信息为所述用户输入个人识别密码PIN码的方式,和/或,所述用户输入的PIN码;
所述USB Key判断获取的用户输入信息是否与所述USB Key接收到的报文匹配;
如果所述获取的用户输入信息与所述USB Key接收到的报文匹配,所述USB Key对所述报文进行数字签名;
如果所述获取的用户输入信息与所述USB Key接收到的报文不匹配,所述USB Key返回错误信息或认证失败信息。
本发明实施例提供了一种数字签名方法,应用于包括通用串行总线USB Key和主机的***中,所述USB Key存储有用户输入信息集合,并记录有上一次认证时使用的用户输入信息,所述用户输入信息为所述用户输入个人识别密码PIN码的方式,和/或,所述用户输入的PIN码,所述方法包括以下步骤:
①、所述USB Key获取用户输入信息;
②、所述USB Key判断获取的用户输入信息是否包含在所述用户输入信息集合中,如果包含在所述用户输入信息集合中,则执行步骤④;否则,执行步骤③;
③、所述USB Key返回错误信息或认证失败信息,结束流程;
④、所述USB Key判断所述获取的用户输入信息是否与上一次认证时使用的用户输入信息相同,如果相同,则执行步骤③;否则,执行步骤⑤;
⑤、所述USB Key对接收到的报文进行数字签名。
本发明实施例提供了一种数字签名方法,包括以下步骤:
①、通用串行总线USB Key接收来自主机的报文,根据所述报文确定对应的PIN码的数量;
②、所述USB Key获取用户输入信息,将计数器的计数值加1,所述计数器的初始计数值为零,所述用户输入信息为所述用户输入个人识别密码PIN码的方式,和/或,所述用户输入的PIN码;
③、所述USB Key判断获取的用户输入信息是否满足预设条件,如果满足,则执行步骤⑤;否则,执行步骤④;
④、所述USB Key返回错误信息或认证失败信息,结束流程;
⑤、所述USB Key判断计数器的计数值是否小于与所述报文对应的PIN码的数量,如果小于,则返回步骤②;否则,执行步骤⑥;
⑥、所述USB Key对所述报文进行数字签名。
本发明实施例提供了一种数字签名方法,包括以下步骤:
①、通用串行总线USB Key获取第一用户输入信息,判断所述第一用户输入信息是否满足预设条件,如果不满足,则执行步骤②;如果满足,执行步骤③;所述第一用户输入信息为所述用户输入第一个人识别密码PIN码的方式,和/或,所述用户输入的第一PIN码;
②、所述USB Key返回错误信息或认证失败信息,结束流程;
③、所述USB Key接收来自主机的报文,获取第二用户输入信息,判断所述第二用户输入信息是否与所述USB Key接收到的报文匹配,如果不匹配,则执行步骤②;如果匹配,则执行步骤④;所述第二用户输入信息为所述用户输入第二PIN码的方式,和/或,所述用户输入的第二PIN码;
④、所述USB Key对所述报文进行数字签名。
本发明实施例提供了一种通用串行总线USB Key,包括:
接收模块,用于接收来自主机的报文;
获取模块,用于获取用户输入信息,所述用户输入信息为所述用户输入个人识别密码PIN码的方式,和/或,所述用户输入的PIN码;
判断模块,用于判断所述获取模块获取的用户输入信息是否与所述接收模块接收到的报文匹配;
数字签名模块,用于在所述判断模块判断所述用户输入信息与所述报文匹配时,对所述报文进行数字签名;
发送模块,用于在所述判断模块判断所述用户输入信息与所述报文不匹配时,返回错误信息或认证失败信息。
本发明实施例提供了一种通用串行总线USB Key,包括:
存储模块,用于存储用户输入信息集合,所述用户输入信息为所述用户输入个人识别密码PIN码的方式,和/或,所述用户输入的PIN码;
记录模块,记录上一次认证时使用的用户输入信息;
接收模块,用于接收来自主机的报文;
获取模块,用于获取用户输入信息;
第一判断模块,用于判断所述获取模块获取的用户输入信息是否包含在所述用户输入信息集合中;
第二判断模块,用于在所述第一判断模块判断所述获取模块获取的用户输入信息包含在所述用户输入信息集合中时,判断所述获取的用户输入信息是否与上一次认证时使用的用户输入信息相同;
数字签名模块,用于在所述第二判断模块判断所述获取的用户输入信息是否与上一次认证时使用的用户输入信息不同时,对所述报文进行数字签名;
发送模块,用于在所述第一判断模块判断所述获取模块获取的用户输入信息不包含在所述用户输入信息集合中时,或者,在所述第二判断模块判断所述获取的用户输入信息是否与上一次认证时使用的用户输入信息相同时,返回错误信息或认证失败信息。
本发明实施例提供了一种通用串行总线USB Key,包括:
接收模块,用于接收来自主机的报文;
确定模块,用于根据所述报文确定对应的个人识别密码PIN码的数量;
获取模块,用于获取用户输入信息,所述用户输入信息为所述用户输入PIN码的方式,和/或,所述用户输入的PIN码;
计数器模块,用于在所述获取模块获取用户输入信息后,将计数值加1,所述计数值的初始值为零;
第一判断模块,用于判断所述获取模块获取的用户输入信息是否满足预设条件;
发送模块,用于在所述第一判断模块判断所述获取模块获取的用户输入信息不满足预设条件时,返回错误信息或认证失败信息;
第二判断模块,用于判断所述计时器模块的计数值是否等于与所述报文对应的PIN码的数量;
数字签名模块,用于在所述第二判断模块判断所述计时器模块的计数值等于与所述报文对应的PIN码的数量时,对所述报文进行数字签名。
本发明实施例提供了一种通用串行总线USB Key,包括:
获取模块,用于获取第一用户输入信息和第二用户输入信息,所述第一用户输入信息为所述用户输入第一个人识别密码PIN码的方式,和/或,所述用户输入的第一PIN码;所述第二用户输入信息为所述用户输入第二PIN码的方式,和/或,所述用户输入的第二PIN码;
第一判断模块,用于判断所述第一用户输入信息是否满足预设条件;
接收模块,用于在所述第一判断模块判断所述第一用户输入信息满足预设条件时,接收来自主机的报文;
第二判断模块,用于判断所述第二用户输入信息是否与所述接收模块接收到的报文匹配;
发送模块,用于在所述第一判断模块判断所述第一用户输入信息不满足预设条件,或者,所述第二判断模块判断所述第二用户输入信息与所述接收模块接收到的报文不匹配时,返回错误信息或认证失败信息;
数字签名模块,用于在所述第二判断模块判断所述第二用户输入信息与所述接收模块接收到的报文匹配时,对所述报文进行数字签名。
本发明实施例提供的技术方案中,在一次认证过程中,使用多个PIN码进行认证,或者,在相邻的两次数字签名过程中,使用不同的私钥进行数字签名;且根据接收到的报文,使用对应的私钥进行数字签名,当一个PIN码泄露时,不会对其他PIN码的认证和数字签名造成影响,能够有效地减少由于PIN码泄露带来的损失,提高了数字签名的安全性。
附图说明
图1为本发明实施例一提供的一种数字签名方法流程图;
图2为本发明实施例一提供的一种报文格式示意图;
图3为本发明实施例二提供的一种数字签名方法流程图;
图4为本发明实施例三提供的一种数字签名方法流程图;
图5为本发明实施例四提供的一种数字签名方法流程图;
图6为本发明实施例五提供的一种数字签名方法流程图;
图7为本发明实施例六提供的一种USB Key的结构示意图;
图8为本发明实施例七提供的一种USB Key的结构示意图;
图9为本发明实施例八提供的一种USB Key的结构示意图;
图10为本发明实施例九提供的一种USB Key的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本发明实施例一提供了一种数字签名方法,参见图1,包括以下步骤:
步骤101,主机获取用户输入的数据,根据该数据进行报文封装,并将封装得到的报文发送给USB Key。
其中,用户输入的数据可以包括指令和/或参数,指令包括查询指令、支付指令和转账指令等;参数包括账户号、账户姓名和转账金额等。主机中的业务***根据用户输入的数据,通过调用主机中的控件提供的函数向报文添加内容,将内容、与内容对应的关键字和内容长度信息封装为报文中的信息段。当需要多次向报文添加内容时,需要按照不同内容对应的信息段的编号,对信息段进行排列。
封装得到的报文为TLV格式的报文,如图2所示,其中,Tag(标签)的内容为ACSII码的“00”,占用2个字节;Length(长度)占用16个字节,表现为十进制数字的字符;Value(值)包括一个或多个信息段。每个信息段包括关键字、编号、长度信息和内容,关键字包括显示标志和NV标志。
其中,显示标志用于表示是否显示该信息段的内容,占用1个字节,其内容可以为“S”或“D”,“S”表示显示该信息段的内容,“D”表示不显示该信息段的内容。NV(Name-Value,名字-值)标志用于表示该信息段的内容的显示方式,占用1个字节,其内容可以为“N”或“V”,“N”表示以名字的形式显示该信息段的内容,即,在将该信息段的内容在前半部分显示;“V”表示以值的形式显示该信息段的内容,即,在将该信息段的内容在后半部分显示。编号用于表示该信息段的编号,占用2个字节,其内容可以为从“00”到“99”之间的数值。内容长度信息用于表示该信息段的内容的长度,占用4个字节。
例如,封装得到的报文中的“Value”包括10个信息段,内容分别为“SN010016转入账户号:”、“SV010015222222222222221”、“SN020019转入账户姓名:”、“SV020006李四”、“SN030032转账金额(小写): ”、“SV03000810000.00”、“DN010016转出账户号:”、“DV010015222222222222222”、“DN020019转出账户姓名:”和“DV020006张三”,则显示的内容为“转入账户号: 222222222222221”、“转入账户姓名: 李四”和“转账金额(小写): 10000.00”。
步骤102,USB Key提示用户输入PIN码,并获取用户输入的PIN码。
具体地,USB Key可以通过自身的显示装置提示用户输入PIN码,也可以通过与自身连接的主机上的显示装置提示用户输入PIN码。USB Key可以通过自身的输入装置获取用户输入的PIN码,也可以通过与自身连接的主机上的输入装置获取用户输入的PIN码。
例如,USB Key可以通过与自身连接的主机,以屏幕显示或语音提示的方式提示用户输入PIN码;也可以通过液晶显示、灯闪烁或声音提示,提示用户输入PIN码。
步骤103,USB Key判断用户输入PIN码的方式是否与USB Key接收到的报文匹配,如果匹配,则执行步骤105;否则,执行步骤104。
具体地,USB Key可以根据接收到的报文所包含的信息段中的内容的取值,确定该内容所在的数据区间,并进一步确定该数据区间对应的输入PIN码的方式,如果确定的输入PIN码的方式与用户输入PIN码的方式相同,则确定用户输入PIN码的方式与USB Key接收到的报文匹配;否则,则确定用户输入PIN码的方式与USB Key接收到的报文不匹配。
例如,当USB Key接收到的报文为“SV03000810000.00”时,该报文包含的信息段中的内容的取值为“10000.00”,USB Key可以确定该内容所在的数据区间为(5000,15000),并进一步确定该数据数据对应的输入PIN码的方式为虚拟桌面配合软键盘的输入方式,如果用户输入PIN码的方式为虚拟桌面配合软键盘的输入方式,则确定用户输入PIN码的方式与USB Key接收到的报文匹配;否则,则确定用户输入PIN码的方式与USB Key接收到的报文不匹配。
USB Key也可以根据用户输入PIN码的方式,确定该方式对应的数据区间,如果USB Key接收到的报文所包含的信息段中的内容的取值在该数据区间内,则确定用户输入PIN码的方式与USB Key接收到的报文匹配;否则,则确定用户输入PIN码的方式与USB Key接收到的报文不匹配。
USB Key还可以根据接收到的报文所包含的信息段中的关键字的取值,确定该取值对应的输入PIN码的方式,如果确定的输入PIN码的方式与用户输入PIN码的方式相同,则确定用户输入PIN码的方式与USB Key接收到的报文匹配;否则,则确定用户输入PIN码的方式与USB Key接收到的报文不匹配。
例如,当USB Key接收到的报文为“SN010016转入账户号:”时,该报文包含的信息段中的关键字的取值为“SN”,USB Key可以确定该取值对应的输入PIN码的方式为普通键盘输入方式,如果用户输入PIN码的方式为普通键盘输入方式,则确定用户输入PIN码的方式与USB Key接收到的报文匹配;否则,则确定用户输入PIN码的方式与USB Key接收到的报文不匹配。
USB Key还可以根据用户输入PIN码的方式,确定该方式对应的关键字的取值,如果确定出的关键字的取值与USB Key接收到的报文所包含的信息段中的关键字的取值相同,则确定用户输入PIN码的方式与USBKey接收到的报文匹配;否则,则确定用户输入PIN码的方式与USB Key接收到的报文不匹配。
其中,输入PIN码的方式可以包括普通键盘输入方式、软键盘输入方式、虚拟桌面配合普通键盘的输入方式、虚拟桌面配合软键盘的输入方式、在带有输入装置的USB Key上直接输入的方式,以及以上输入方式的组合。不同的数据区间可以对应不同的输入PIN码的方式,数据区间内的数据的值越大,该数据区间对应的输入PIN码的方式越复杂。关键字的不同取值也可以对应不同的输入PIN码的方式。
步骤104,USB Key返回错误信息。
需要说明的是,执行完本步骤后,返回步骤102。
步骤105,USB Key判断用户输入的PIN码是否与USB Key接收到的报文匹配,如果匹配,则执行步骤106;否则,返回步骤104。
具体地,USB Key可以根据接收到的报文所包含的信息段中的内容的取值,确定该内容所在的数据区间,并进一步确定该数据区间对应的PIN码,如果确定的PIN码与用户输入的PIN码相同,则确定用户输入的PIN码与USB Key接收到的报文匹配;否则,则确定用户输入的PIN码与USB Key接收到的报文不匹配。
USB Key也可以根据用户输入的PIN码,确定该PIN码对应的数据区间,如果USB Key接收到的报文所包含的信息段中的内容的取值在该数据区间内,则确定用户输入的PIN码与USB Key接收到的报文匹配;否则,则确定用户输入的PIN码与USB Key接收到的报文不匹配。
USB Key还可以根据接收到的报文所包含的信息段中的关键字的取值,确定该取值对应的PIN码,如果确定的PIN码与用户输入的PIN码相同,则确定用户输入的PIN码与USB Key接收到的报文匹配;否则,则确定用户输入的PIN码与USB Key接收到的报文不匹配。
USB Key还可以根据用户输入的PIN码,确定该PIN码对应的关键字的取值,如果确定出的关键字的取值与USB Key接收到的报文所包含的信息段中的关键字的取值相同,则确定用户输入的PIN码与USB Key接收到的报文匹配;否则,则确定用户输入的PIN码与USB Key接收到的报文不匹配。
其中,不同的数据区间对应不同的PIN码,数据区间内的数据的值越大,对应的PIN码越复杂。例如,第一区间内的数据小于或等于500,对应第一PIN码;第二区间内的数据的大小在501-2000的范围内,对应第二PIN码;第三区间内的数据大于2000,对应第三PIN码。第三PIN码比第二PIN码复杂,第二PIN码比第一PIN码复杂。关键字的不同取值也可以对应不同的PIN码。
步骤106,USB Key使用与接收到的报文对应的一个或多个私钥,对该报文进行数字签名。
具体地,USB Key可以根据接收到的报文所包含的信息段中的内容的取值,确定该内容所在的数据区间,进而确定该数据区间对应的一个或多个私钥,即,与接收到的报文对应的一个或多个私钥;也可以根据接收到的报文所包含的信息段中的关键字的取值,确定该取值对应的一个或多个私钥,即,与接收到的报文对应的一个或多个私钥。
进一步地,USB Key可以使用哈希函数生成与接收到的报文对应的报文摘要,并用确定出的一个或多个私钥对报文摘要进行加密,将加密后的报文摘要作为报文的数字签名和报文一起发送给接收方。接收方可以使用相同的哈希函数生成与接收到的报文对应的报文摘要,用对应的公钥对报文附加的数字签名进行解密,得到解密后的报文摘要。当使用哈希函数生成的报文摘要与解密得到的报文摘要相同时,接收方可确认接收到的数字签名为合法签名。
其中,不同的数据区间可以对应不同的私钥,数据区间内的数据的值越大,对应的私钥的强度越大。例如,第一区间内的数据小于或等于500,对应第一私钥;第二区间内的数据的大小在501-2000的范围内,对应第二私钥;第三区间内的数据大于2000,对应第三私钥。第三私钥的强度大于第二私钥的强度,第二私钥的强度大于第一私钥的强度。
另外,不同的数据区间也可以对应不同数量的私钥,数据区间内的数据的值越大,对应的私钥的数量越多、强度越大。例如,第一区间内的数据小于或等于500,对应第一私钥;第二区间内的数据的大小在501-2000的范围内,对应第二私钥和第三私钥;第三区间内的数据大于2000,对应第二私钥、第三私钥和第四密钥。
此外,关键字的不同取值可以对应不同的私钥,也可以对应不同数量的私钥。
本发明实施例针对USB Key接收到的报文,使用对应的PIN码和PIN码输入方式进行认证,并使用对应的私钥进行数字签名,当一个PIN码泄露时,不会对使用其他PIN码的认证和数字签名造成影响,能够有效地减少由于PIN码泄露带来的损失,提高了数字签名的安全性。
本发明实施例一中,先判断用户输入PIN码的方式是否与USB Key接收到的报文匹配,如果匹配,再判断用户输入的PIN码是否与USB Key接收到的报文匹配。在本发明的其他实施例中,也可以先判断用户输入的PIN码是否与USB Key接收到的报文匹配,如果匹配,再判断用户输入PIN码的方式是否与USB Key接收到的报文匹配,具体流程见实施例二。
实施例二
本发明实施例二提供了一种数字签名方法,应用于包括主机和USB Key的***,参见图3,包括以下步骤:
步骤201,主机获取用户输入的数据,根据该数据进行报文封装,并将封装得到的报文发送给USB Key。
其中,用户输入的数据可以包括指令和/或参数。
步骤202,USB Key根据接收到的报文,向主机发送提示信息。
步骤203,主机根据接收到的提示信息,提示用户输入PIN码,并获取用户输入的PIN码,将该PIN码发送给USB Key。
需要说明的是,上述步骤202为本实施例的优选步骤。在本发明的其他实施方式中,USB Key也可以不向主机发送提示信息,主机在获取用户输入的数据后,直接提示用户输入PIN码,获取用户输入的PIN码,并将该PIN码发送给USB Key。
步骤204,USB Key判断用户输入的PIN码是否与USB Key接收到的报文匹配,如果匹配,则执行步骤206;否则,执行步骤205。
需要说明的是,USB Key判断用户输入的PIN码是否与USB Key接收到的报文匹配的具体过程,与实施例一中的步骤105相同。
步骤205,USB Key返回认证失败信息,将认证失败次数加1。
其中,认证失败次数的初始值为0。
步骤206,USB Key判断认证失败次数是否大于预设次数,如果大于预设次数,则执行步骤207;否则,返回步骤202。
步骤207,USB Key返回错误信息。
步骤208,USB Key判断用户输入PIN码的方式是否与USB Key接收到的报文匹配,如果匹配,则执行步骤209;否则,返回步骤205。
需要说明的是,USB Key判断用户输入PIN码的方式是否与USB Key接收到的报文匹配的具体过程,与实施例一中的步骤103相同。
步骤209,USB Key使用与接收到的报文对应的私钥,对该报文进行数字签名。
需要说明的是,USB Key对报文进行数字签名的具体过程,与实施例一中的步骤106相同。
本发明实施例针对USB Key接收到的报文,使用对应的PIN码和PIN码输入方式进行认证,并使用对应的私钥进行数字签名,当一个PIN码泄露时,不会对使用其他PIN码的认证和数字签名造成影响,能够有效地减少由于PIN码泄露带来的损失,提高了数字签名的安全性。
需要说明的是,在本发明的其他实施方式中,USB Key可以判断用户输入的PIN码是否与USB Key接收到的报文匹配,如果匹配,则使用与接收到的报文对应的私钥,对该报文进行数字签名;否则,返回错误信息或认证失败信息;USB Key也可以判断用户输入PIN码的方式是否与USB Key接收到的报文匹配,如果匹配,则使用与接收到的报文对应的私钥,对该报文进行数字签名;否则,返回错误信息或认证失败信息;上述两种实施方式,同样可以实现本发明的发明目的。
在本发明的其他实施方式中,USB Key也可以存储PIN码集合,PIN码集合包括多个PIN码,USB Key还可以记录上一次认证使用的PIN码。在相邻的两次认证过程中,USB Key使用不同的PIN码进行认证;USBKey还可以存储私钥集合,私钥集合包括多个私钥,在相邻的两次数字签名中,USB Key使用不同的私钥进行签名。具体流程见实施例三。
实施例三
本发明实施例三提供了一种数字签名方法,参见图4,包括以下步骤:
步骤301,USB Key接收来自主机的报文。
步骤302,USB Key提示用户输入PIN码,获取用户输入的PIN码。
步骤303,USB Key判断自身存储的PIN码集合中是否包含用户输入的PIN码,如果包含,则执行步骤304;否则,执行步骤305。
步骤304,USB Key判断用户输入的PIN码是否与上次认证时使用的PIN码相同,如果相同,则执行步骤305;否则,执行步骤308。
步骤305,USB Key返回认证失败信息,将认证失败次数加1。
其中,认证失败次数的初始值为0。
步骤306,USB Key判断认证失败次数是否大于预设次数,如果大于预设次数,则执行步骤307;否则,返回步骤302。
步骤307,USB Key返回错误信息。
步骤308,USB Key判断用户输入PIN码的方式是否与USB Key接收到的报文匹配,如果匹配,则执行步骤309;否则,返回步骤305。
需要说明的是,USB Key判断用户输入PIN码的方式是否与USB Key接收到的报文匹配的具体过程,与实施例一中的步骤103相同。
步骤309,USB Key从私钥集合中选取与上一次数字签名所使用的私钥不同的私钥,使用选取的私钥对接收到的报文进行数字签名,并记录本次认证所使用的PIN码。
本发明实施例提供的技术方案中,在相邻的两次认证过程中,USB Key使用不同的PIN码进行认证;在相邻的两次数字签名过程中,USBKey使用不同的私钥进行数字签名;且针对对应不同数据区间内的报文,USB Key使用不同的PIN码输入方式进行认证,并使用不同的私钥进行数字签名,当某次认证使用的PIN码泄露时,不会对下一次认证和数字签名造成影响,能够有效地减少由于PIN码泄露带来的损失,提高了数字签名的安全性。
需要说明的是,在本发明的其他实施方式中,USB Key也可以存储PIN码输入方式集合,该集合包括多种PIN码输入方式,USB Key还可以记录上一次认证时使用的PIN码输入方式。USB Key获取用户输入的PIN码之后,判断用户输入PIN码的方式是否包含在USB Key存储的PIN码输入方式集合中,如果不包含在PIN码输入方式集合中,则返回错误信息或认证失败信息;如果包含在PIN码输入方式集合中,则判断用户输入PIN码的方式是否与上次认证时使用的PIN码输入方式相同,如果相同,则返回错误信息或认证失败信息;如果不同,则判断用户输入的PIN码的是否与USB Key接收到的报文匹配,如果匹配,则对接收到的报文进行数字签名;否则,返回错误信息或认证失败信息。上述实施方式同样可以实现本发明的发明目的。
USB Key还可以同时存储PIN码输入方式集合和PIN码集合,并记录上一次认证时使用的PIN码和PIN码输入方式。USB Key获取用户输入的PIN码之后,判断用户输入PIN码的方式是否包含在USB Key存储的PIN码输入方式集合中,如果不包含在PIN码输入方式集合中,则返回错误信息或认证失败信息;如果包含在PIN码输入方式集合中,则判断用户输入PIN码的方式是否与上次认证时使用的PIN码输入方式相同,如果相同,则返回错误信息或认证失败信息;如果不同,判断用户输入的PIN码是否包含在USB Key存储的PIN码集合中,如果不包含在PIN码集合中,则返回错误信息或认证失败信息;如果包含在PIN码集合中,则判断用户输入的PIN码是否与上次认证时使用的PIN码相同,如果相同,则返回错误信息或认证失败信息;如果不同,则判断用户输入的PIN码是否与USB Key接收到的报文匹配,如果匹配,则对接收到的报文进行数字签名;否则,返回错误信息或认证失败信息。上述实施方式同样可以实现本发明的发明目的。
在本发明的其他实施方式中,USB Key也可以存储多个PIN码的。在一次认证过程中,USB Key可以使用多个PIN码进行认证,具体流程见实施例四。
实施例四
本发明实施例四提供了一种数字签名方法,参见图5,包括以下步骤:
步骤401,USB Key接收来自主机的报文。
步骤402,USB Key根据接收到的报文,确定与该报文对应的PIN码的数量。
具体地,USB Key可以根据报文所包含的信息段中的内容的取值,确定该内容所在的数据区间,根据该数据区间确定对应的PIN码的数量,将确定出的PIN码数量作为与报文对应的PIN码的数量。USB Key也可以根据报文所包含的信息段中的关键字的取值,确定该取值对应的PIN码的数量,将确定出的PIN码数量作为与报文对应的PIN码的数量。
步骤403,USB Key提示用户输入PIN码,获取用户输入信息,将计数器的计数值加1。
其中,用户输入信息为用户输入PIN码的方式,和/或,用户输入的PIN码;计数器的初始计数值为零。
步骤404,USB Key判断获取的用户输入信息是否满足预设条件,如果满足,则执行步骤408;否则,执行步骤405。
其中,预设条件可以为用户输入信息与所述报文匹配;也可以为用户输入信息包含在USB Key预先存储的用户输入信息集合中。
步骤405,USB Key返回认证失败信息,将认证失败次数加1。
其中,认证失败次数的初始值为0。
步骤406,USB Key判断认证失败次数是否大于预设次数,如果大于预设次数,则执行步骤407;否则,返回步骤403。
步骤407,USB Key返回错误信息,结束流程。
步骤408,USB Key判断计数器的计数值是否小于与USB Key接收到的报文对应的PIN码的数量,如果小于,则返回步骤403;否则,执行步骤409。
步骤409,USB Key使用与接收到的报文对应的私钥,对报文进行数字签名。
需要说明的是,USB Key对报文进行数字签名的具体过程,与实施例一中的步骤106相同。
本发明实施例提供的技术方案中,USB Key在一次认证过程中,使用多个PIN码进行认证;且根据接收到的报文,USB Key使用对应的私钥进行数字签名,当一个PIN码泄露时,不会对其他PIN码的认证和数字签名造成影响,能够有效地减少由于PIN码泄露带来的损失,提高了数字签名的安全性。
实施例五
本发明实施例五提供了一种数字签名方法,参见图6,包括以下步骤:
步骤501,USB Key获取第一用户输入信息。
其中,第一用户输入信息为用户输入第一PIN码的方式,和/或,用户输入的第一PIN码。
步骤502,USB Key判断第一用户输入信息是否满足预设条件,如果不满足,则执行503;否则,执行步骤504。
其中,预设条件可以具体为:第一用户输入信息为预设信息;或者,第一用户输入信息包含在USB Key预先存储的用户输入信息集合中。
步骤503,USB Key返回错误信息或认证失败信息,结束流程。
步骤504,USB Key接收来自主机的报文,获取第二用户输入信息。
其中,第二用户输入信息为用户输入第二PIN码的方式,和/或,用户输入的第二PIN码。
步骤505,USB Key判断第二用户输入信息是否与USB Key接收到的报文匹配,如果不匹配,则执行步骤503;如果匹配,则执行步骤506。
步骤506,USB Key使用与接收到的报文对应的一个或多个私钥,对报文进行数字签名。
需要说明的是,USB Key对报文进行数字签名的具体过程,与实施例一中的步骤106相同。
本发明实施例提供的技术方案中,USB Key在一次认证过程中,使用两个PIN码进行认证;且根据接收到的报文,USB Key使用相应的PIN码进行认证,并使用相应的私钥进行数字签名,当一个PIN码泄露时,不会对其他PIN码的认证和数字签名造成影响,能够有效地减少由于PIN码泄露带来的损失,提高了数字签名的安全性。
实施例六
本发明实施例六提供了一种USB Key,如图7所示,包括:
接收模块610,用于接收来自主机的报文。
获取模块620,用于获取用户输入信息,所述用户输入信息为所述用户输入PIN码的方式,和/或,所述用户输入的PIN码。
判断模块630,用于判断获取模块620获取的用户输入信息是否与接收模块610接收到的报文匹配。
具体地,判断模块630,具体用于:
根据所述报文所包含的信息段中的内容的取值,确定所述内容所在的数据区间;根据所述数据区间,确定所述数据区间对应的用户输入信息;判断确定出的用户输入信息是否与所述获取模块获取的用户输入信息相同,如果相同,则确定所述获取的用户输入信息与所述接收模块接收到的报文匹配;否则,则确定所述获取的用户输入信息与所述接收模块接收到的报文不匹配;
或者,
根据所述报文所包含的信息段中的关键字的取值,确定所述取值对应的用户输入信息,判断确定出的用户输入信息是否与所述获取模块获取的用户输入信息相同,如果相同,则确定所述获取的用户输入信息与所述接收模块接收到的报文匹配;否则,则确定所述获取的用户输入信息与所述接收模块接收到的报文不匹配;
或者,
根据所述获取的用户输入信息,确定所述用户输入信息对应的数据区间,判断所述报文所包含的信息段中的内容的取值是否在确定出的数据区间内,如果在所述确定出的数据区间内,则确定所述获取的用户输入信息与所述接收模块接收到的报文匹配;否则,则确定所述获取的用户输入信息与所述接收模块接收到的报文不匹配;
或者,
根据所述获取的用户输入信息,确定所述用户输入信息对应的关键字的取值,判断所述确定出的关键字的取值是否与所述报文所包含的信息段中的关键字的取值相同,如果相同,则确定所述获取的用户输入信息与所述接收模块接收到的报文匹配;否则,则确定所述获取的用户输入信息与所述接收模块接收到的报文不匹配。
数字签名模块640,用于在判断模块630判断所述用户输入信息与所述报文匹配时,对所述报文进行数字签名。
具体地,数字签名模块640,具体用于使用与所述报文对应的一个或多个私钥,对所述报文进行数字签名;
或者,
从预置的私钥集合中,选取与上一次数字签名所使用的私钥不同的私钥,使用选取的私钥对所述报文进行数字签名。
发送模块650,用于在判断模块630判断所述用户输入信息与所述报文不匹配时,返回错误信息或认证失败信息。
本发明实施例针对USB Key接收到的报文,使用对应的PIN码和PIN码输入方式进行认证,并使用对应的私钥进行数字签名,当一个PIN码泄露时,不会对使用其他PIN码的认证和数字签名造成影响,能够有效地减少由于PIN码泄露带来的损失,提高了数字签名的安全性。
实施例七
本发明实施例七提供了一种USB Key,如图8所示,包括:
存储模块710,用于存储用户输入信息集合,所述用户输入信息为所述用户输入PIN码的方式,和/或,所述用户输入的PIN码。
记录模块720,记录上一次认证时使用的用户输入信息。
接收模块730,用于接收来自主机的报文。
获取模块740,用于获取用户输入信息。
第一判断模块750,用于判断获取模块740获取的用户输入信息是否包含在所述用户输入信息集合中。
第二判断模块760,用于在第一判断模块750判断获取模块740获取的用户输入信息包含在所述用户输入信息集合中时,判断所述获取的用户输入信息是否与上一次认证时使用的用户输入信息相同;
数字签名模块770,用于在第二判断模块760判断所述获取的用户输入信息是否与上一次认证时使用的用户输入信息不同时,对所述报文进行数字签名;
具体地,数字签名模块770,具体用于使用与所述报文对应的一个或多个私钥,对所述报文进行数字签名;
或者,
从预置的私钥集合中,选取与上一次数字签名所使用的私钥不同的私钥,使用选取的私钥对所述报文进行数字签名。
发送模块780,用于在第一判断模块760判断获取模块740获取的用户输入信息不包含在所述用户输入信息集合中时,或者,在第二判断模块760判断所述获取的用户输入信息是否与上一次认证时使用的用户输入信息相同时,返回错误信息或认证失败信息。
本发明实施例提供的技术方案中,在相邻的两次认证过程中,使用不同的PIN码进行认证;在相邻的两次数字签名过程中,使用不同的私钥进行数字签名;且针对对应不同数据区间内的报文,使用不同的PIN码输入方式进行认证,并使用不同的私钥进行数字签名,当某次认证使用的PIN码泄露时,不会对下一次认证和数字签名造成影响,能够有效地减少由于PIN码泄露带来的损失,提高了数字签名的安全性。
实施例八
本发明实施例八提供了一种USB Key,如图9所示,包括:
接收模块810,用于接收来自主机的报文。
确定模块820,用于根据接收模块810接收到的报文,确定对应的PIN码的数量。
具体地,确定模块820,具体用于根据所述报文所包含的信息段中的内容的取值,确定所述内容所在的数据区间;根据所述数据区间,确定所述数据区间对应的PIN码的数量,将确定出的PIN码数量作为与所述报文对应的PIN码的数量;
或者,
根据所述报文所包含的信息段中的关键字的取值,确定所述取值对应的PIN码的数量,将确定出的PIN码数量作为与所述报文对应的PIN码的数量。
获取模块830,用于获取用户输入信息,所述用户输入信息为所述用户输入PIN码的方式,和/或,所述用户输入的PIN码。
计数器模块840,用于在获取模块830获取用户输入信息后,将计数值加1,所述计数值的初始值为零。
第一判断模块850,用于判断获取模块830获取的用户输入信息是否满足预设条件。
其中,预设条件,具体为:用户输入信息与所述报文匹配;或者,用户输入信息包含在所述USB Key预先存储的用户输入信息集合中。
当预设条件为用户输入信息与所述报文匹配时,
第一判断模块850,具体用于:
根据所述报文所包含的信息段中的内容的取值,确定所述内容所在的数据区间;根据所述数据区间,确定所述数据区间对应的用户输入信息;判断确定出的用户输入信息是否与所述获取模块获取的用户输入信息相同,如果相同,则确定所述获取的用户输入信息与所述接收模块接收到的报文匹配;否则,则确定所述获取的用户输入信息与所述接收模块接收到的报文不匹配;
或者,
根据所述报文所包含的信息段中的关键字的取值,确定所述取值对应的用户输入信息,判断确定出的用户输入信息是否与所述获取模块获取的用户输入信息相同,如果相同,则确定所述获取的用户输入信息与所述接收模块接收到的报文匹配;否则,则确定所述获取的用户输入信息与所述接收模块接收到的报文不匹配;
或者,
根据所述获取的用户输入信息,确定所述用户输入信息对应的数据区间,判断所述报文所包含的信息段中的内容的取值是否在确定出的数据区间内,如果在所述确定出的数据区间内,则确定所述获取的用户输入信息与所述接收模块接收到的报文匹配;否则,则确定所述获取的用户输入信息与所述接收模块接收到的报文不匹配;
或者,
根据所述获取的用户输入信息,确定所述用户输入信息对应的关键字的取值,判断所述确定出的关键字的取值是否与所述报文所包含的信息段中的关键字的取值相同,如果相同,则确定所述获取的用户输入信息与所述接收模块接收到的报文匹配;否则,则确定所述获取的用户输入信息与所述接收模块接收到的报文不匹配。
发送模块860,用于在第一判断模块850判断获取模块830获取的用户输入信息不满足预设条件时,返回错误信息或认证失败信息。
第二判断模块870,用于判断计时器模块840的计数值是否等于与所述报文对应的PIN码的数量。
数字签名模块880,用于在第二判断模块870判断计时器模块840的计数值等于与所述报文对应的PIN码的数量时,对所述报文进行数字签名。
本发明实施例提供的技术方案中,在一次认证过程中,使用多个PIN码进行认证;且根据接收到的报文,使用对应的私钥进行数字签名,当一个PIN码泄露时,不会对其他PIN码的认证和数字签名造成影响,能够有效地减少由于PIN码泄露带来的损失,提高了数字签名的安全性。
实施例九
本发明实施例九提供了一种USB Key,如图10所示,包括:
获取模块910,用于获取第一用户输入信息和第二用户输入信息,所述第一用户输入信息为所述用户输入第一个人识别密码PIN码的方式,和/或,所述用户输入的第一PIN码;所述第二用户输入信息为所述用户输入第二PIN码的方式,和/或,所述用户输入的第二PIN码。
第一判断模块920,用于判断所述第一用户输入信息是否满足预设条件。
其中,预设条件具体为:第一用户输入信息为预设信息;或者,第一用户输入信息包含在USB Key预先存储的用户输入信息集合中。
接收模块930,用于在第一判断模块920判断所述第一用户输入信息满足预设条件时,接收来自主机的报文。
第二判断模块940,用于判断所述第二用户输入信息是否与接收模块930接收到的报文匹配。
具体地,第二判断模块940,具体用于:
根据所述报文所包含的信息段中的内容的取值,确定所述内容所在的数据区间;根据所述数据区间,确定所述数据区间对应的用户输入信息;判断确定出的用户输入信息是否与所述第二用户输入信息相同,如果相同,则确定所述第二用户输入信息与所述报文匹配;否则,则确定所述第二用户输入信息与所述报文不匹配;
或者,
根据所述报文所包含的信息段中的关键字的取值,确定所述取值对应的用户输入信息,判断确定出的用户输入信息是否与所述第二用户输入信息相同,如果相同,则确定所述第二用户输入信息与所述报文匹配;否则,则确定所述第二用户输入信息与所述报文不匹配;
或者,
根据所述第二用户输入信息,确定所述第二用户输入信息对应的数据区间,判断所述报文所包含的信息段中的内容的取值是否在确定出的数据区间内,如果在所述确定出的数据区间内,则确定所述第二用户输入信息与所述报文匹配;否则,则确定所述第二用户输入信息与所述报文不匹配;
或者,
根据所述第二用户输入信息,确定所述第二用户输入信息对应的关键字的取值,判断所述确定出的关键字的取值是否与所述报文所包含的信息段中的关键字的取值相同,如果相同,则确定所述第二用户输入信息与所述报文匹配;否则,则确定所述第二用户输入信息与所述报文不匹配。
发送模块950,用于在所述第一判断模块920判断所述第一用户输入信息不满足预设条件,或者,所述第二判断模块940判断所述第二用户输入信息与所述USB Key接收到的报文不匹配时,返回错误信息或认证失败信息。
数字签名模块960,用于在第二判断模块940判断所述第二用户输入信息与接收模块930接收到的报文匹配时,对所述报文进行数字签名。
具体地,数字签名模块960,具体用于使用与所述报文对应的一个或多个私钥,对所述报文进行数字签名;
或者,
从预置的私钥集合中,选取与上一次数字签名所使用的私钥不同的私钥,使用选取的私钥对所述报文进行数字签名。
本发明实施例提供的技术方案中,在一次认证过程中,使用两个PIN码进行认证;且根据接收到的报文,使用相应的PIN码进行认证,并使用相应的私钥进行数字签名,当一个PIN码泄露时,不会对其他PIN码的认证和数字签名造成影响,能够有效地减少由于PIN码泄露带来的损失,提高了数字签名的安全性。
结合本文中所公开的实施例描述的方法中的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (26)
1.一种数字签名方法,其特征在于,包括以下步骤:
通用串行总线USB Key接收来自主机的报文,获取用户输入信息,所述用户输入信息为所述用户输入个人识别密码PIN码的方式,和/或,所述用户输入的PIN码;
所述USB Key判断获取的用户输入信息是否与所述USB Key接收到的报文匹配;
如果所述获取的用户输入信息与所述USB Key接收到的报文匹配,所述USB Key对所述报文进行数字签名;
如果所述获取的用户输入信息与所述USB Key接收到的报文不匹配,所述USB Key返回错误信息或认证失败信息。
2.如权利要求1所述的方法,其特征在于,所述USB Key判断用户输入信息是否与所述USB Key接收到的报文匹配,具体包括:
所述USB Key根据所述报文所包含的信息段中的内容的取值,确定所述内容所在的数据区间;所述USB Key根据所述数据区间,确定所述数据区间对应的用户输入信息;所述USB Key判断确定出的用户输入信息是否与所述USB Key获取的用户输入信息相同,如果相同,则确定所述获取的用户输入信息与所述USB Key接收到的报文匹配;否则,则确定所述获取的用户输入信息与所述USB Key接收到的报文不匹配;
或者,
所述USB Key根据所述报文所包含的信息段中的关键字的取值,确定所述取值对应的用户输入信息,判断确定出的用户输入信息是否与所述USB Key获取的用户输入信息相同,如果相同,则确定所述获取的用户输入信息与所述USB Key接收到的报文匹配;否则,则确定所述获取的用户输入信息与所述USB Key接收到的报文不匹配;
或者,
所述USB Key根据所述获取的用户输入信息,确定所述用户输入信息对应的数据区间,判断所述报文所包含的信息段中的内容的取值是否在确定出的数据区间内,如果在所述确定出的数据区间内,则确定所述获取的用户输入信息与所述USB Key接收到的报文匹配;否则,则确定所述获取的用户输入信息与所述USB Key接收到的报文不匹配;
或者,
所述USB Key根据所述获取的用户输入信息,确定所述用户输入信息对应的关键字的取值,判断所述确定出的关键字的取值是否与所述报文所包含的信息段中的关键字的取值相同,如果相同,则确定所述获取的用户输入信息与所述USB Key接收到的报文匹配;否则,则确定所述获取的用户输入信息与所述USB Key接收到的报文不匹配。
3.如权利要求1所述的方法,其特征在于,所述USB Key对所述报文进行数字签名,具体为:
所述USB Key使用与所述报文对应的一个或多个私钥,对所述报文进行数字签名;
或者,
所述USB Key从预置的私钥集合中,选取与上一次数字签名所使用的私钥不同的私钥,使用选取的私钥对所述报文进行数字签名。
4.一种数字签名方法,应用于包括通用串行总线USB Key和主机的***中,其特征在于,所述USB Key存储有用户输入信息集合,并记录有上一次认证时使用的用户输入信息,所述用户输入信息为所述用户输入个人识别密码PIN码的方式,和/或,所述用户输入的PIN码,所述方法包括以下步骤:
①、所述USB Key获取用户输入信息;
②、所述USB Key判断获取的用户输入信息是否包含在所述用户输入信息集合中,如果包含在所述用户输入信息集合中,则执行步骤④;否则,执行步骤③;
③、所述USB Key返回错误信息或认证失败信息,结束流程;
④、所述USB Key判断所述获取的用户输入信息是否与上一次认证时使用的用户输入信息相同,如果相同,则执行步骤③;否则,执行步骤⑤;
⑤、所述USB Key对接收到的报文进行数字签名。
5.如权利要求4所述的方法,其特征在于,所述USB Key对接收到的报文进行数字签名,具体为:
所述USB Key使用与所述报文对应的一个或多个私钥,对所述报文进行数字签名;
或者,
所述USB Key从预置的私钥集合中,选取与上一次数字签名所使用的私钥不同的私钥,使用选取的私钥对所述报文进行数字签名。
6.一种数字签名方法,其特征在于,包括以下步骤:
①、通用串行总线USB Key接收来自主机的报文,根据所述报文确定对应的PIN码的数量;
②、所述USB Key获取用户输入信息,将计数器的计数值加1,所述计数器的初始计数值为零,所述用户输入信息为所述用户输入个人识别密码PIN码的方式,和/或,所述用户输入的PIN码;
③、所述USB Key判断获取的用户输入信息是否满足预设条件,如果满足,则执行步骤⑤;否则,执行步骤④;
④、所述USB Key返回错误信息或认证失败信息,结束流程;
⑤、所述USB Key判断计数器的计数值是否小于与所述报文对应的PIN码的数量,如果小于,则返回步骤②;否则,执行步骤⑥;
⑥、所述USB Key对所述报文进行数字签名。
7.如权利要求6所述的方法,其特征在于,所述USB Key根据所述报文确定对应的PIN码的数量,具体包括:
所述USB Key根据所述报文所包含的信息段中的内容的取值,确定所述内容所在的数据区间;所述USB Key根据所述数据区间,确定所述数据区间对应的PIN码的数量,将确定出的PIN码数量作为与所述报文对应的PIN码的数量;
或者,
所述USB Key根据所述报文所包含的信息段中的关键字的取值,确定所述取值对应的PIN码的数量,将确定出的PIN码数量作为与所述报文对应的PIN码的数量。
8.如权利要求6所述的方法,其特征在于,所述预设条件,具体为:
所述用户输入信息与所述报文匹配;
或者,
所述用户输入信息包含在所述USB Key预先存储的用户输入信息集合中。
9.如权利要求6所述的方法,其特征在于,所述预设条件为所述用户输入信息与所述报文匹配时,所述USB Key判断获取的用户输入信息是否满足预设条件,具体包括:
所述USB Key根据所述报文所包含的信息段中的内容的取值,确定所述内容所在的数据区间;所述USB Key根据所述数据区间,确定所述数据区间对应的用户输入信息;所述USB Key判断确定出的用户输入信息是否与所述USB Key获取的用户输入信息相同,如果相同,则确定所述获取的用户输入信息满足预设条件;否则,则确定所述获取的用户输入信息不满足预设条件;
或者,
所述USB Key根据所述报文所包含的信息段中的关键字的取值,确定所述取值对应的用户输入信息,判断确定出的用户输入信息是否与所述USB Key获取的用户输入信息相同,如果相同,则确定所述获取的用户输入信息满足预设条件;否则,则确定所述获取的用户输入信息不满足预设条件;
或者,
所述USB Key根据所述获取的用户输入信息,确定所述用户输入信息对应的数据区间,判断所述报文所包含的信息段中的内容的取值是否在确定出的数据区间内,如果在所述确定出的数据区间内,则确定所述获取的用户输入信息满足预设条件;否则,则确定所述获取的用户输入信息不满足预设条件;
或者,
所述USB Key根据所述获取的用户输入信息,确定所述用户输入信息对应的关键字的取值,判断所述确定出的关键字的取值是否与所述报文所包含的信息段中的关键字的取值相同,如果相同,则确定所述获取的用户输入信息满足预设条件;否则,则确定所述获取的用户输入信息不满足预设条件。
10.一种数字签名方法,其特征在于,包括以下步骤:
①、通用串行总线USB Key获取第一用户输入信息,判断所述第一用户输入信息是否满足预设条件,如果不满足,则执行步骤②;如果满足,执行步骤③;所述第一用户输入信息为所述用户输入第一个人识别密码PIN码的方式,和/或,所述用户输入的第一PIN码;
②、所述USB Key返回错误信息或认证失败信息,结束流程;
③、所述USB Key接收来自主机的报文,获取第二用户输入信息,判断所述第二用户输入信息是否与所述USB Key接收到的报文匹配,如果不匹配,则执行步骤②;如果匹配,则执行步骤④;所述第二用户输入信息为所述用户输入第二PIN码的方式,和/或,所述用户输入的第二PIN码;
④、所述USB Key对所述报文进行数字签名。
11.如权利要求10所述的方法,其特征在于,所述预设条件具体为:
所述第一用户输入信息为预设信息;
或者,
所述第一用户输入信息包含在所述USB Key预先存储的用户输入信息集合中。
12.如权利要求10所述的方法,其特征在于,所述USB Key判断第二用户输入信息是否与所述USB Key接收到的报文匹配,具体包括:
所述USB Key根据所述报文所包含的信息段中的内容的取值,确定所述内容所在的数据区间;所述USB Key根据所述数据区间,确定所述数据区间对应的用户输入信息;所述USB Key判断确定出的用户输入信息是否与所述第二用户输入信息相同,如果相同,则确定所述第二用户输入信息与所述USB Key接收到的报文匹配;否则,则确定所述第二用户输入信息与所述USB Key接收到的报文不匹配;
或者,
所述USB Key根据所述报文所包含的信息段中的关键字的取值,确定所述取值对应的用户输入信息,判断确定出的用户输入信息是否与所述第二用户输入信息相同,如果相同,则确定所述第二用户输入信息与所述USB Key接收到的报文匹配;否则,则确定所述第二用户输入信息与所述USB Key接收到的报文不匹配;
或者,
所述USB Key根据所述第二用户输入信息,确定所述第二用户输入信息对应的数据区间,判断所述报文所包含的信息段中的内容的取值是否在确定出的数据区间内,如果在所述确定出的数据区间内,则确定所述第二用户输入信息与所述USB Key接收到的报文匹配;否则,则确定所述第二用户输入信息与所述USB Key接收到的报文不匹配;
或者,
所述USB Key根据所述第二用户输入信息,确定所述第二用户输入信息对应的关键字的取值,判断所述确定出的关键字的取值是否与所述报文所包含的信息段中的关键字的取值相同,如果相同,则确定所述第二用户输入信息与所述USB Key接收到的报文匹配;否则,则确定所述第二用户输入信息与所述USB Key接收到的报文不匹配。
13.如权利要求10所述的方法,其特征在于,所述USB Key对所述报文进行数字签名,具体为:
所述USB Key使用与所述报文对应的一个或多个私钥,对所述报文进行数字签名;
或者,
所述USB Key从预置的私钥集合中,选取与上一次数字签名所使用的私钥不同的私钥,使用选取的私钥对所述报文进行数字签名。
14.一种通用串行总线USB Key,其特征在于,包括:
接收模块,用于接收来自主机的报文;
获取模块,用于获取用户输入信息,所述用户输入信息为所述用户输入个人识别密码PIN码的方式,和/或,所述用户输入的PIN码;
判断模块,用于判断所述获取模块获取的用户输入信息是否与所述接收模块接收到的报文匹配;
数字签名模块,用于在所述判断模块判断所述用户输入信息与所述报文匹配时,对所述报文进行数字签名;
发送模块,用于在所述判断模块判断所述用户输入信息与所述报文不匹配时,返回错误信息或认证失败信息。
15.如权利要求14所述的USB Key,其特征在于,所述判断模块,具体用于:
根据所述报文所包含的信息段中的内容的取值,确定所述内容所在的数据区间;根据所述数据区间,确定所述数据区间对应的用户输入信息;判断确定出的用户输入信息是否与所述获取模块获取的用户输入信息相同,如果相同,则确定所述获取的用户输入信息与所述接收模块接收到的报文匹配;否则,则确定所述获取的用户输入信息与所述接收模块接收到的报文不匹配;
或者,
根据所述报文所包含的信息段中的关键字的取值,确定所述取值对应的用户输入信息,判断确定出的用户输入信息是否与所述获取模块获取的用户输入信息相同,如果相同,则确定所述获取的用户输入信息与所述接收模块接收到的报文匹配;否则,则确定所述获取的用户输入信息与所述接收模块接收到的报文不匹配;
或者,
根据所述获取的用户输入信息,确定所述用户输入信息对应的数据区间,判断所述报文所包含的信息段中的内容的取值是否在确定出的数据区间内,如果在所述确定出的数据区间内,则确定所述获取的用户输入信息与所述接收模块接收到的报文匹配;否则,则确定所述获取的用户输入信息与所述接收模块接收到的报文不匹配;
或者,
根据所述获取的用户输入信息,确定所述用户输入信息对应的关键字的取值,判断所述确定出的关键字的取值是否与所述报文所包含的信息段中的关键字的取值相同,如果相同,则确定所述获取的用户输入信息与所述接收模块接收到的报文匹配;否则,则确定所述获取的用户输入信息与所述接收模块接收到的报文不匹配。
16.如权利要求14所述的USB Key,其特征在于,
所述数字签名模块,具体用于使用与所述报文对应的一个或多个私钥,对所述报文进行数字签名;
或者,
从预置的私钥集合中,选取与上一次数字签名所使用的私钥不同的私钥,使用选取的私钥对所述报文进行数字签名。
17.一种通用串行总线USB Key,其特征在于,包括:
存储模块,用于存储用户输入信息集合,所述用户输入信息为所述用户输入个人识别密码PIN码的方式,和/或,所述用户输入的PIN码;
记录模块,记录上一次认证时使用的用户输入信息;
接收模块,用于接收来自主机的报文;
获取模块,用于获取用户输入信息;
第一判断模块,用于判断所述获取模块获取的用户输入信息是否包含在所述用户输入信息集合中;
第二判断模块,用于在所述第一判断模块判断所述获取模块获取的用户输入信息包含在所述用户输入信息集合中时,判断所述获取的用户输入信息是否与上一次认证时使用的用户输入信息相同;
数字签名模块,用于在所述第二判断模块判断所述获取的用户输入信息是否与上一次认证时使用的用户输入信息不同时,对所述报文进行数字签名;
发送模块,用于在所述第一判断模块判断所述获取模块获取的用户输入信息不包含在所述用户输入信息集合中时,或者,在所述第二判断模块判断所述获取的用户输入信息是否与上一次认证时使用的用户输入信息相同时,返回错误信息或认证失败信息。
18.如权利要求17所述的USB Key,其特征在于,
所述数字签名模块,具体用于使用与所述报文对应的一个或多个私钥,对所述报文进行数字签名;
或者,
从预置的私钥集合中,选取与上一次数字签名所使用的私钥不同的私钥,使用选取的私钥对所述报文进行数字签名。
19.一种通用串行总线USB Key,其特征在于,包括:
接收模块,用于接收来自主机的报文;
确定模块,用于根据所述报文确定对应的个人识别密码PIN码的数量;
获取模块,用于获取用户输入信息,所述用户输入信息为所述用户输入PIN码的方式,和/或,所述用户输入的PIN码;
计数器模块,用于在所述获取模块获取用户输入信息后,将计数值加1,所述计数值的初始值为零;
第一判断模块,用于判断所述获取模块获取的用户输入信息是否满足预设条件;
发送模块,用于在所述第一判断模块判断所述获取模块获取的用户输入信息不满足预设条件时,返回错误信息或认证失败信息;
第二判断模块,用于判断所述计时器模块的计数值是否等于与所述报文对应的PIN码的数量;
数字签名模块,用于在所述第二判断模块判断所述计时器模块的计数值等于与所述报文对应的PIN码的数量时,对所述报文进行数字签名。
20.如权利要求19所述的USB Key,其特征在于,
所述确定模块,具体用于根据所述报文所包含的信息段中的内容的取值,确定所述内容所在的数据区间;根据所述数据区间,确定所述数据区间对应的PIN码的数量,将确定出的PIN码数量作为与所述报文对应的PIN码的数量;
或者,
根据所述报文所包含的信息段中的关键字的取值,确定所述取值对应的PIN码的数量,将确定出的PIN码数量作为与所述报文对应的PIN码的数量。
21.如权利要求19所述的USB Key,其特征在于,所述预设条件,具体为:
所述用户输入信息与所述报文匹配;
或者,
所述用户输入信息包含在所述USB Key预先存储的用户输入信息集合中。
22.如权利要求19所述的USB Key,其特征在于,所述预设条件为所述用户输入信息与所述报文匹配时,
所述第一判断模块,具体用于:
根据所述报文所包含的信息段中的内容的取值,确定所述内容所在的数据区间;根据所述数据区间,确定所述数据区间对应的用户输入信息;判断确定出的用户输入信息是否与所述获取模块获取的用户输入信息相同,如果相同,则确定所述获取的用户输入信息与所述接收模块接收到的报文匹配;否则,确定所述获取的用户输入信息与所述接收模块接收到的报文不匹配;
或者,
根据所述报文所包含的信息段中的关键字的取值,确定所述取值对应的用户输入信息,判断确定出的用户输入信息是否与所述获取模块获取的用户输入信息相同,如果相同,则确定所述获取的用户输入信息与所述接收模块接收到的报文匹配;否则,则确定所述获取的用户输入信息与所述接收模块接收到的报文不匹配;
或者,
根据所述获取的用户输入信息,确定所述用户输入信息对应的数据区间,判断所述报文所包含的信息段中的内容的取值是否在确定出的数据区间内,如果在所述确定出的数据区间内,则确定所述获取的用户输入信息与所述接收模块接收到的报文匹配;否则,则确定所述获取的用户输入信息与所述接收模块接收到的报文不匹配;
或者,
根据所述获取的用户输入信息,确定所述用户输入信息对应的关键字的取值,判断所述确定出的关键字的取值是否与所述报文所包含的信息段中的关键字的取值相同,如果相同,则确定所述获取的用户输入信息与所述接收模块接收到的报文匹配;否则,则确定所述获取的用户输入信息与所述接收模块接收到的报文不匹配。
23.一种通用串行总线USB Key,其特征在于,包括:
获取模块,用于获取第一用户输入信息和第二用户输入信息,所述第一用户输入信息为所述用户输入第一个人识别密码PIN码的方式,和/或,所述用户输入的第一PIN码;所述第二用户输入信息为所述用户输入第二PIN码的方式,和/或,所述用户输入的第二PIN码;
第一判断模块,用于判断所述第一用户输入信息是否满足预设条件;
接收模块,用于在所述第一判断模块判断所述第一用户输入信息满足预设条件时,接收来自主机的报文;
第二判断模块,用于判断所述第二用户输入信息是否与所述接收模块接收到的报文匹配;
发送模块,用于在所述第一判断模块判断所述第一用户输入信息不满足预设条件,或者,所述第二判断模块判断所述第二用户输入信息与所述接收模块接收到的报文不匹配时,返回错误信息或认证失败信息;
数字签名模块,用于在所述第二判断模块判断所述第二用户输入信息与所述接收模块接收到的报文匹配时,对所述报文进行数字签名。
24.如权利要求23所述的USB Key,其特征在于,所述预设条件具体为:
所述第一用户输入信息为预设信息;
或者,
所述第一用户输入信息包含在所述USB Key预先存储的用户输入信息集合中。
25.如权利要求23所述的USB Key,其特征在于,所述第二判断模块,具体用于:
根据所述报文所包含的信息段中的内容的取值,确定所述内容所在的数据区间;根据所述数据区间,确定所述数据区间对应的用户输入信息;判断确定出的用户输入信息是否与所述第二用户输入信息相同,如果相同,则确定所述第二用户输入信息与所述报文匹配;否则,则确定所述第二用户输入信息与所述报文不匹配;
或者,
根据所述报文所包含的信息段中的关键字的取值,确定所述取值对应的用户输入信息,判断确定出的用户输入信息是否与所述第二用户输入信息相同,如果相同,则确定所述第二用户输入信息与所述报文匹配;否则,则确定所述第二用户输入信息与所述报文不匹配;
或者,
根据所述第二用户输入信息,确定所述第二用户输入信息对应的数据区间,判断所述报文所包含的信息段中的内容的取值是否在确定出的数据区间内,如果在所述确定出的数据区间内,则确定所述第二用户输入信息与所述报文匹配;否则,则确定所述第二用户输入信息与所述报文不匹配;
或者,
根据所述第二用户输入信息,确定所述第二用户输入信息对应的关键字的取值,判断所述确定出的关键字的取值是否与所述报文所包含的信息段中的关键字的取值相同,如果相同,则确定所述第二用户输入信息与所述报文匹配;否则,则确定所述第二用户输入信息与所述报文不匹配。
26.如权利要求23所述的USB Key,其特征在于,
所述数字签名模块,具体用于使用与所述报文对应的一个或多个私钥,对所述报文进行数字签名;
或者,
从预置的私钥集合中,选取与上一次数字签名所使用的私钥不同的私钥,使用选取的私钥对所述报文进行数字签名。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210135512.XA CN102685121B (zh) | 2012-05-03 | 2012-05-03 | 一种数字签名方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210135512.XA CN102685121B (zh) | 2012-05-03 | 2012-05-03 | 一种数字签名方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102685121A true CN102685121A (zh) | 2012-09-19 |
CN102685121B CN102685121B (zh) | 2016-05-25 |
Family
ID=46816484
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210135512.XA Expired - Fee Related CN102685121B (zh) | 2012-05-03 | 2012-05-03 | 一种数字签名方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102685121B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102938034A (zh) * | 2012-10-26 | 2013-02-20 | 飞天诚信科技股份有限公司 | 一种转换装置的工作方法 |
CN106936594A (zh) * | 2017-05-17 | 2017-07-07 | 浪潮通信信息***有限公司 | 一种链式自认证安全交互方法 |
CN108011719A (zh) * | 2017-11-16 | 2018-05-08 | 深圳市文鼎创数据科技有限公司 | 一种签名方法、装置及数字签名*** |
CN110737878A (zh) * | 2018-07-19 | 2020-01-31 | 深圳市鸿合创新信息技术有限责任公司 | 自动配置应用软件的数字签名的方法及***、电子设备 |
CN111126973A (zh) * | 2019-11-20 | 2020-05-08 | 北京锐格信安技术有限公司 | 一种加密数字货币钱包签名装置及签名方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101127137A (zh) * | 2007-09-13 | 2008-02-20 | 王昌荣 | 电子交易过程中的多组密码循环验证方法 |
CN101163012A (zh) * | 2007-11-20 | 2008-04-16 | 江苏先安科技有限公司 | 一种数字证书细粒度的验证***及验证方法 |
CN101278538A (zh) * | 2005-10-05 | 2008-10-01 | 普里瓦斯菲尔公司 | 用于用户认证的方法和设备 |
CN101639883A (zh) * | 2009-09-03 | 2010-02-03 | 北京飞天诚信科技有限公司 | 一种校验pin码的方法和智能密钥设备 |
CN101800645A (zh) * | 2010-02-05 | 2010-08-11 | 中国工商银行股份有限公司 | 一种身份认证方法、装置及*** |
CN102024105A (zh) * | 2010-11-16 | 2011-04-20 | 深圳市文鼎创数据科技有限公司 | 安全认证方法和装置 |
CN102223233A (zh) * | 2011-06-15 | 2011-10-19 | 刘洪利 | 一种生物密码认证***,以及一种生物密码认证方法 |
-
2012
- 2012-05-03 CN CN201210135512.XA patent/CN102685121B/zh not_active Expired - Fee Related
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101278538A (zh) * | 2005-10-05 | 2008-10-01 | 普里瓦斯菲尔公司 | 用于用户认证的方法和设备 |
CN101127137A (zh) * | 2007-09-13 | 2008-02-20 | 王昌荣 | 电子交易过程中的多组密码循环验证方法 |
CN101163012A (zh) * | 2007-11-20 | 2008-04-16 | 江苏先安科技有限公司 | 一种数字证书细粒度的验证***及验证方法 |
CN101639883A (zh) * | 2009-09-03 | 2010-02-03 | 北京飞天诚信科技有限公司 | 一种校验pin码的方法和智能密钥设备 |
CN101800645A (zh) * | 2010-02-05 | 2010-08-11 | 中国工商银行股份有限公司 | 一种身份认证方法、装置及*** |
CN102024105A (zh) * | 2010-11-16 | 2011-04-20 | 深圳市文鼎创数据科技有限公司 | 安全认证方法和装置 |
CN102223233A (zh) * | 2011-06-15 | 2011-10-19 | 刘洪利 | 一种生物密码认证***,以及一种生物密码认证方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102938034A (zh) * | 2012-10-26 | 2013-02-20 | 飞天诚信科技股份有限公司 | 一种转换装置的工作方法 |
CN102938034B (zh) * | 2012-10-26 | 2015-03-04 | 飞天诚信科技股份有限公司 | 一种转换装置的工作方法 |
CN106936594A (zh) * | 2017-05-17 | 2017-07-07 | 浪潮通信信息***有限公司 | 一种链式自认证安全交互方法 |
CN106936594B (zh) * | 2017-05-17 | 2020-03-17 | 浪潮天元通信信息***有限公司 | 一种链式自认证安全交互方法 |
CN108011719A (zh) * | 2017-11-16 | 2018-05-08 | 深圳市文鼎创数据科技有限公司 | 一种签名方法、装置及数字签名*** |
CN110737878A (zh) * | 2018-07-19 | 2020-01-31 | 深圳市鸿合创新信息技术有限责任公司 | 自动配置应用软件的数字签名的方法及***、电子设备 |
CN110737878B (zh) * | 2018-07-19 | 2023-12-22 | 深圳市鸿合创新信息技术有限责任公司 | 自动配置应用软件的数字签名的方法及***、电子设备 |
CN111126973A (zh) * | 2019-11-20 | 2020-05-08 | 北京锐格信安技术有限公司 | 一种加密数字货币钱包签名装置及签名方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102685121B (zh) | 2016-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101593389B (zh) | 一种用于pos终端的密钥管理方法和*** | |
CN108154365B (zh) | 一种生成动态二维码的安全设备、方法及*** | |
CN105491077B (zh) | 一种身份认证的*** | |
KR20100016579A (ko) | 크리덴셜 배포를 위한 시스템 및 방법 | |
CN103281299B (zh) | 一种加解密装置以及信息处理方法和*** | |
CN112104627B (zh) | 基于区块链的数据传输方法、装置、电子设备及存储介质 | |
CN101739622A (zh) | 一种可信支付计算机*** | |
CN102685121A (zh) | 一种数字签名方法和装置 | |
CN104732159A (zh) | 一种文件处理方法及装置 | |
US8984599B2 (en) | Real time password generation apparatus and method | |
CN107733936B (zh) | 一种移动数据的加密方法 | |
CN113822675A (zh) | 基于区块链的报文处理方法、装置、设备及存储介质 | |
CN102238135A (zh) | 安全认证服务器 | |
CN105989481A (zh) | 数据交互方法及*** | |
CN103514540A (zh) | 一种优盾业务实现方法及*** | |
CN105989477A (zh) | 数据交互方法 | |
CN101739623A (zh) | 一种可信支付计算机*** | |
CN105991539A (zh) | 数据交互方法及*** | |
CN110659900A (zh) | 无应用支付方法、装置、介质及电子设备 | |
CN201742426U (zh) | Sim卡安全认证服务器 | |
CN201378346Y (zh) | 一种可信支付计算机装置 | |
CN105991530A (zh) | 数据交互*** | |
CN105989475A (zh) | 数据交互方法 | |
CN105991527A (zh) | 数据交互*** | |
CN201845350U (zh) | 长寿命安全认证sim卡 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160525 |