数字签名生成/发送/验证方法、终端及计算机存储介质与流程

文档序号:17817226发布日期:2019-06-05 21:53
数字签名生成/发送/验证方法、终端及计算机存储介质与流程

本发明属于网络安全技术领域,涉及一种数字签名,特别是涉及一种数字签名生成/发送/验证方法、终端及计算机存储介质。



背景技术:

现有数字签名技术是非对称密钥加密技术与数字摘要技术的应用。现有数字签名将摘要信息用发送者的私钥加密,与原文一起传送给接收者。接收者只有用发送者的公钥才能解密被加密的摘要信息,然后用HASH函数对收到的原文产生一个摘要信息,与解密的摘要信息进行对比。如果相同,则说明收到的信息是完整的,在传输过程中没有被修改,否则,则说明收到的信息被修改过,因此数字签名能够验证信息的完整性。

现有数字签名是基于公钥密码体系建立的,但公钥密码体系的安全性依赖于计算的复杂度,在理论上不具有无条件安全性。由于计算机的运算能力不断提高,被破解的几率很大,有较大的安全隐患。



技术实现要素:

鉴于以上所述现有技术的缺点,本发明的目的在于提供一种数字签名生成/发送/验证方法、终端及计算机存储介质,用于解决随着计算机的运算能力的不断提高,现有数字签名技术被破解的几率增大,存在较大的安全隐患的问题。

为实现上述目的及其他相关目的,本发明提供一种数字签名生成方法,所述数字签名生成方法包括:签名发送方利用与多方认证中心分别共享的密钥及与多方认证中心分别对应的算法,对对应的签名信息进行计算获得对应的码;所述多方认证中心为包括两方及两方以上的认证中心;所述对应的签名信息包括签名数据;合并签名发送方的识别号、签名数据、与多方认证中心分别共享的密钥的序列号、多方认证中心的识别号及对应的码,生成签名发送方的数字签名。

于本发明的一实施例中,所述对应的算法合并于所述数字签名中。

于本发明的一实施例中,所述对应的算法为预先约定的,且不合并于所述数字签名中。

于本发明的一实施例中,所述数字签名生成方法的一种实现过程包括:签名发送方利用第一共享密钥及第一算法对第一签名信息计算获得第一码;签名发送方利用第二共享密钥及第二算法对第二签名信息计算获得第二码;合并签名发送方的识别号、签名数据、所述第一共享密钥的序列号、所述第一共享密钥的提供方识别号、所述第一码、所述第二共享密钥的序列号、所述第二共享密钥的提供方识别号和所述第二码,生成签名发送方的数字签名;若所述第一算法或/和所述第二算法为预先约定的,则合并或不合并于所述数字签名中;若所述第一算法或/和所述第二算法未预先约定,则合并于所述数字签名中;其中,所述第一共享密钥的提供方是所述多方认证中心中的第一认证中心;所述第二共享密钥的提供方是所述多方认证中心中的第二认证中心。

于本发明的一实施例中,所述第一签名信息包括第一签名区数据,所述第一签名区数据包括所述签名发送方的识别号、所述签名数据、所述第一共享密钥的序列号、所述第一共享密钥的提供方识别号和所述第一算法;所述第二签名信息包括第二签名区数据,所述第二签名区数据包括所述签名发送方的识别号、所述签名数据、所述第二共享密钥的序列号、所述第二共享密钥的提供方识别号和所述第二算法。

于本发明的一实施例中,所述第一签名信息包括第一摘要信息;所述第一摘要信息是利用第一摘要算法对所述第一签名区数据进行摘要计算获得的;所述第二签名信息包括第二摘要信息;所述第二摘要信息是利用第二摘要算法对所述第二签名区数据进行摘要计算获得的;若所述第一摘要算法或/和所述第二摘要算法为预先约定的,则合并或不合并于所述数字签名中;若所述第一摘要算法或/和所述第二摘要算法未预先约定,则合并于所述数字签名中。

于本发明的一实施例中,所述第一签名信息与所述第二签名信息相同,均为签名信息;所述签名信息包括摘要信息;所述摘要信息是利用摘要算法对签名区数据进行摘要计算获得的;所述签名区数据包括所述签名发送方的识别号、所述签名数据、所述摘要算法,所述第一共享密钥的序列号、所述第一共享密钥的提供方识别号、所述第一算法,所述第二共享密钥的序列号、所述第二共享密钥的提供方识别号和所述第二算法;若所述摘要算法为预先约定的,则合并或不合并于所述数字签名中;若所述摘要算法未预先约定,则合并于所述数字签名中。

于本发明的一实施例中,所述第一共享密钥和第二共享密钥中的至少一个密钥为量子密钥。

于本发明的一实施例中,所述第一共享密钥的提供方与所述第二共享密钥的提供方不同。

于本发明的一实施例中,所述第一共享密钥选自第一共享密钥集;所述第一共享密钥集为所述第一共享密钥提供方与所述签名发送方共享的密钥集;或/和所述第二共享密钥选自第二共享密钥集;所述第二共享密钥集为所述第二共享密钥提供方与所述签名发送方共享的密钥集。

于本发明的一实施例中,所述数字签名生成方法的一种实现过程还包括:签名发送方利用第三共享密钥及第三算法对第三签名信息计算获得第三码;所述签名发送方的数字签名还包括所述第三共享密钥的序列号、所述第三共享密钥的提供方识别号和所述第三码;若所述第三算法为预先约定的,则合并或不合并于所述数字签名中;若所述第三算法未预先约定,则合并于所述数字签名中;所述第三共享密钥的提供方是所述多方认证中心中的第三认证中心。

于本发明的一实施例中,所述第三签名信息包括第三签名区数据,所述第三签名区数据包括所述签名发送方的识别号、所述签名数据、所述第三共享密钥的序列号、所述第三共享密钥的提供方识别号和所述第三算法。

于本发明的一实施例中,所述第三签名信息包括第三摘要信息;所述第三摘要信息是利用第三摘要算法对所述第三签名区数据进行摘要计算获得的;若所述第三摘要算法为预先约定的,则合并或不合并于所述数字签名中;若所述第三摘要算法未预先约定,则合并于所述数字签名中。

于本发明的一实施例中,所述第三签名信息与所述第一签名信息和所述第二签名信息相同,均为签名信息;所述签名信息包括摘要信息;所述摘要信息是利用摘要算法对签名区数据进行摘要计算获得的;所述签名区数据包括所述签名发送方的识别号、所述签名数据、所述摘要算法,所述第一共享密钥的序列号、所述第一共享密钥的提供方识别号、所述第一算法,所述第二共享密钥的序列号、所述第二共享密钥的提供方识别号,所述第二算法,所述第三共享密钥的序列号、所述第三共享密钥的提供方识别号和所述第三算法;若所述摘要算法为预先约定的,则合并或不合并于所述数字签名中;若所述摘要算法未预先约定,则合并于所述数字签名中。

于本发明的一实施例中,所述第一共享密钥,第二共享密钥和第三共享密钥中的至少一个密钥为量子密钥。

于本发明的一实施例中,所述第一共享密钥的提供方,所述第二共享密钥的提供方及所述第三共享密钥的提供方中有至少2个提供方不同。

于本发明的一实施例中,所述第一共享密钥选自第一共享密钥集;所述第一共享密钥集为所述第一共享密钥提供方与所述签名发送方共享的密钥集;所述第二共享密钥选自第二共享密钥集;所述第二共享密钥集为所述第二共享密钥提供方与所述签名发送方共享的密钥集;或/和所述第三共享密钥选自第三共享密钥集;所述第三共享密钥集为所述第三共享密钥提供方与所述签名发送方共享的密钥集。

本发明还提供一种计算机存储介质,所述计算机存储介质存储有第一计算机程序;所述第一计算机程序被处理器调用时执行所述的数字签名生成方法。

本发明还提供一种数字签名生成终端,包括:第一输入端,用于输入数字签名相关参数;第一存储器,用于存储第一计算机程序及所述数字签名相关参数;第一处理器,与所述第一存储器通信相连,调用所述第一计算机程序和所述数字签名相关参数时执行所述的数字签名生成方法,生成数字签名。

本发明还提供一种数字签名发送方法,包括:签名发送方将所述的数字签名生成方法生成的数字签名发送给签名接收方;或签名发送方利用共享密钥Kab将所述的数字签名生成方法生成的数字签名加密后发送给签名接收方;所述共享密钥Kab是签名发送方与签名接收方共享的密钥。

本发明还提供一种数字签名验证方法,所述数字签名验证方法包括:签名接收方获取签名发送方的数字签名;所述签名发送方的数字签名包括:签名发送方的识别号、签名数据、与多方认证中心分别共享的密钥的序列号、多方认证中心的识别号及对应的码;其中,所述签名发送方利用与所述多方认证中心分别共享的密钥及与所述多方认证中心分别对应的算法,对对应的签名信息进行计算获得所述对应的码;所述多方认证中心为包括两方及两方以上的认证中心;所述对应的签名信息包括所述签名数据;签名接收方根据所述数字签名中多方认证中心的识别号,将所述数字签名分别发送给所述多方认证中心进行验证,并接收所述多方认证中心反馈的验证结果;当所述多方认证中心反馈的验证结果均为通过时,签名接收方确认所述数字签名有效;否则,签名接收方确认所述数字签名无效。

本发明还提供一种计算机存储介质,所述计算机存储介质存储有第二计算机程序;所述第二计算机程序被处理器调用时执行所述的数字签名验证方法。

本发明还提供一种数字签名验证终端,包括:第二输入端,用于输入数字签名相关参数;第二存储器,用于存储第二计算机程序及所述数字签名相关参数;第二处理器,与所述第二存储器通信相连,调用所述第二计算机程序和所述数字签名相关参数时执行所述的数字签名验证方法,验证数字签名是否有效。

本发明还提供一种数字签名验证方法,所述数字签名验证方法包括:签名接收方获取签名发送方的数字签名;所述数字签名包括:签名发送方的识别号、签名数据、第一共享密钥的序列号、第一共享密钥的提供方识别号、第一码、第二共享密钥的序列号、第二共享密钥的提供方识别号和第二码;其中,所述签名发送方利用所述第一共享密钥及第一算法对第一签名信息计算获得所述第一码;所述签名发送方利用所述第二共享密钥及第二算法对第二签名信息计算获得所述第二码;所述第一签名信息和所述第二签名信息均包括所述签名数据;若所述第一算法或/和所述第二算法为预先约定的,则合并或不合并于所述数字签名中;若所述第一算法或/和所述第二算法未预先约定,则合并于所述数字签名中;其中,所述第一共享密钥的提供方是多方认证中心中的第一认证中心;所述第二共享密钥的提供方是多方认证中心中的第二认证中心;签名接收方根据所述数字签名中的第一共享密钥的提供方识别号,将所述数字签名发送给所述第一共享密钥的提供方进行验证,并接收所述第一共享密钥的提供方反馈的第一验证结果;签名接收方根据所述数字签名中的第二共享密钥的提供方识别号,将所述数字签名发送给所述第二共享密钥的提供方进行验证,并接收所述第二共享密钥的提供方反馈的第二验证结果;当所述第一验证结果和所述第二验证结果均为通过时,签名接收方确认所述数字签名有效;否则,签名接收方确认所述数字签名无效。

于本发明的一实施例中,所述签名接收方获取签名发送方的数字签名的一种实现过程包括:所述签名接收方接收所述签名发送方发送的所述数字签名;或所述签名接收方利用共享密钥Kab解密获得所述签名发送方发送的所述数字签名;所述共享密钥Kab是所述签名发送方与所述签名接收方共享的密钥。

于本发明的一实施例中,所述签名接收方将所述数字签名发送给第一共享密钥的提供方或第二共享密钥的提供方进行验证的一种实现过程包括:所述签名接收方将所述数字签名的全部数据发送给所述第一共享密钥的提供方或所述第二共享密钥的提供方进行验证;或所述签名接收方将所述数字签名中的与所述第一共享密钥的提供方相关的数据发送给所述第一共享密钥的提供方进行验证,或将所述数字签名中的与所述第二共享密钥的提供方相关的数据发送给所述第二共享密钥的提供方进行验证。

于本发明的一实施例中,所述第一共享密钥的提供方对所述数字签名进行验证的一种实现过程包括:所述第一共享密钥的提供方根据所述数字签名中的签名发送方的识别号和第一共享密钥的序列号获取对应的第一共享密钥,并根据所述第一算法、第一签名信息和所述第一共享密钥计算获得第一验证码;所述第一共享密钥的提供方将所述第一验证码与所述数字签名中的第一码进行对比,若相同则反馈验证通过的第一验证结果,否则反馈验证不通过的第一验证结果。

于本发明的一实施例中,所述第二共享密钥的提供方对所述数字签名进行验证的一种实现过程包括:所述第二共享密钥的提供方根据所述数字签名中的签名发送方的识别号和第二共享密钥的序列号获取对应的第二共享密钥,并根据所述第二算法、第二签名信息和所述第二共享密钥计算获得第二验证码;所述第二共享密钥的提供方将所述第二验证码与所述数字签名中的第二码进行对比,若相同则反馈验证通过的第二验证结果,否则反馈验证不通过的第二验证结果。

本发明还提供一种计算机存储介质,所述计算机存储介质存储有第三计算机程序;所述第三计算机程序被处理器调用时执行所述的数字签名验证方法。

本发明还提供一种数字签名验证终端,包括:第三输入端,用于输入数字签名相关参数;第三存储器,用于存储第三计算机程序及所述数字签名相关参数;第三处理器,与所述第三存储器通信相连,调用所述第三计算机程序和所述数字签名相关参数时执行所述的数字签名验证方法,验证数字签名是否有效。

本发明还提供一种数字签名验证方法,所述数字签名验证方法包括:签名接收方获取签名发送方的数字签名;所述签名发送方的数字签名包括:签名发送方的识别号、签名数据、第一共享密钥的序列号、第一共享密钥的提供方识别号、第一码、第二共享密钥的序列号、第二共享密钥的提供方识别号、第二码、第三共享密钥的序列号、第三共享密钥的提供方识别号和第三码;其中,所述签名发送方利用所述第一共享密钥及第一算法对第一签名信息计算获得所述第一码;所述签名发送方利用所述第二共享密钥及第二算法对第二签名信息计算获得所述第二码;所述签名发送方利用所述第三共享密钥及第三算法对第三签名信息计算获得所述第三码;所述第一签名信息、所述第二签名信息和所述第三签名信息均包括所述签名数据;若所述第一算法、所述第二算法或/和所述第三算法为预先约定的,则合并或不合并于所述数字签名中;若所述第一算法、所述第二算法或/和所述第三算法未预先约定,则合并于所述数字签名中;其中,所述第一共享密钥的提供方是所述多方认证中心中的第一认证中心;所述第二共享密钥的提供方是所述多方认证中心中的第二认证中心;所述第三共享密钥的提供方是多方认证中心中的第三认证中心;签名接收方根据所述数字签名中的第一共享密钥的提供方识别号,将所述数字签名发送给所述第一共享密钥的提供方进行验证,并接收所述第一共享密钥的提供方反馈的第一验证结果;签名接收方根据所述数字签名中的第二共享密钥的提供方识别号,将所述数字签名发送给所述第二共享密钥的提供方进行验证,并接收所述第二共享密钥的提供方反馈的第二验证结果;签名接收方根据所述数字签名中的第三共享密钥的提供方识别号,将所述数字签名发送给所述第三共享密钥的提供方进行验证,并接收所述第三共享密钥的提供方反馈的第三验证结果;当所述第一验证结果,所述第二验证结果和所述第三验证结果均为通过时,签名接收方确认所述数字签名有效;否则,签名接收方确认所述数字签名无效。

于本发明的一实施例中,所述签名接收方获取签名发送方的数字签名的一种实现过程包括:所述签名接收方接收所述签名发送方发送的所述数字签名;或所述签名接收方利用共享密钥Kab解密获得所述签名发送方发送的所述数字签名;所述共享密钥Kab是所述签名发送方与所述签名接收方共享的密钥。

于本发明的一实施例中,所述签名接收方将所述数字签名发送给第一共享密钥的提供方,第二共享密钥的提供方或/和第三共享密钥的提供方进行验证的一种实现过程包括:所述签名接收方将所述数字签名的全部数据发送给所述第一共享密钥的提供方,所述第二共享密钥的提供方或/和所述第三共享密钥的提供方进行验证;或所述签名接收方将所述数字签名中的与所述第一共享密钥的提供方相关的数据发送给所述第一共享密钥的提供方进行验证,或将所述数字签名中的与所述第二共享密钥的提供方相关的数据发送给所述第二共享密钥的提供方进行验证,或将所述数字签名中的与所述第三共享密钥的提供方相关的数据发送给所述第三共享密钥的提供方进行验证。

于本发明的一实施例中,所述第一共享密钥的提供方对所述数字签名进行验证的一种实现过程包括:所述第一共享密钥的提供方根据所述数字签名中的签名发送方的识别号和第一共享密钥的序列号获取对应的第一共享密钥,并根据所述第一算法、第一签名信息和所述第一共享密钥计算获得第一验证码;所述第一共享密钥的提供方将所述第一验证码与所述数字签名中的第一码进行对比,若相同则反馈验证通过的第一验证结果,否则反馈验证不通过的第一验证结果。

于本发明的一实施例中,所述第二共享密钥的提供方对所述数字签名进行验证的一种实现过程包括:所述第二共享密钥的提供方根据所述数字签名中的签名发送方的识别号和第二共享密钥的序列号获取对应的第二共享密钥,并根据所述第二算法、第二签名信息和所述第二共享密钥计算获得第二验证码;所述第二共享密钥的提供方将所述第二验证码与所述数字签名中的第二码进行对比,若相同则反馈验证通过的第二验证结果,否则反馈验证不通过的第二验证结果。

于本发明的一实施例中,所述第三共享密钥的提供方对所述数字签名进行验证的一种实现过程包括:所述第三共享密钥的提供方根据所述数字签名中的签名发送方的识别号和第三共享密钥的序列号获取对应的第三共享密钥,并根据所述第三算法、第三签名信息和所述第三共享密钥计算获得第三验证码;所述第三共享密钥的提供方将所述第三验证码与所述数字签名中的第三码进行对比,若相同则反馈验证通过的第三验证结果,否则反馈验证不通过的第三验证结果。

本发明还提供一种计算机存储介质,所述计算机存储介质存储有第四计算机程序;所述第四计算机程序被处理器调用时执行所述的数字签名验证方法。

本发明还提供一种数字签名验证终端,包括:第四输入端,用于输入数字签名相关参数;第四存储器,用于存储第四计算机程序及所述数字签名相关参数;第四处理器,与所述第四存储器通信相连,调用所述第四计算机程序和所述数字签名相关参数时执行所述的数字签名验证方法,验证数字签名是否有效。

如上所述,本发明的数字签名生成/发送/验证方法、终端及计算机存储介质,具有以下有益效果:

本发明利用会签模式或量子密钥或二者相结合的方式实现数字签名;会签模式可以保证唯有签名方拥有完整的数字签名密钥,单个认证中心都只有部分数字签名密钥,认证中心也无法伪造签名方的数字签名,从而进一步提高数字签名的安全性;量子密钥以量子力学为基础,它的安全性是建立在测不准原理、量子的不可克隆及量子相干性等物理特性之上的,被证明是无条件安全的,从而更进一步提高数字签名的安全性;会签模式与量子密钥结合能从根本上解决基于公钥密码系统的数字签名的安全隐患。

附图说明

图1A显示为本发明实施例所述的数字签名生成方法的一种实现流程示意图。

图1B显示为本发明实施例所述的数字签名生成方法的一种具体实现流程示意图。

图1C显示为本发明实施例所述的数字签名生成方法的另一种具体实现流程示意图。

图1D显示为本发明实施例所述的数字签名生成方法的一种应用场景示意图。

图1E显示为本发明实施例所述的数字签名生成终端的一种实现结构示意图。

图2A显示为本发明实施例所述的数字签名发送方法的一种实现流程示意图。

图2B显示为本发明实施例所述的数字签名发送方法的另一种实现流程示意图。

图2C显示为本发明实施例所述的数字签名发送方法的一种应用场景示意图。

图3A显示为本发明实施例所述的数字签名验证方法的一种实现流程示意图。

图3B显示为本发明实施例所述的数字签名验证方法的一种具体实现流程示意图。

图3C显示为本发明实施例所述的数字签名验证方法的另一种具体实现流程示意图。

图3D显示为本发明实施例所述的数字签名验证方法的一种应用场景示意图。

图3E显示为本发明实施例所述的数字签名验证方法的另一种应用场景示意图。

图4显示为本发明实施例所述的数字签名验证终端的一种实现结构示意图。

图5显示为本发明实施例所述的数字签名验证终端的另一种实现结构示意图。

图6显示为本发明实施例所述的数字签名验证终端的又一种实现结构示意图。

元件标号说明

100 数字签名生成终端

110 第一输入端

120 第一存储器

130 第一处理器

300 数字签名验证终端

410 第二输入端

420 第二存储器

430 第二处理器

510 第三输入端

520 第三存储器

530 第三处理器

610 第四输入端

620 第四存储器

630 第四处理器

S101~S102 步骤

S111~S113 步骤

S121~S124 步骤

S301~S302 步骤

S311~S316 步骤

S321~S327 步骤

具体实施方式

以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。

需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图示中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。

请参阅图1A,本发明实施例提供了一种数字签名生成方法,所述的数字签名生成方法包括:

S101,签名发送方利用与多方认证中心分别共享的密钥及与多方认证中心分别对应的算法,对对应的签名信息进行计算获得对应的码;所述多方认证中心为包括两方及两方以上的认证中心,即所述多方认证中心包括第一认证中心,第二认证中心,第三认证中心,第四认证中心,第五认证中心等至少2个认证中心;所述对应的签名信息包括签名数据。

S102,合并签名发送方的识别号、签名数据、与多方认证中心分别共享的密钥的序列号、多方认证中心的识别号及对应的码,生成签名发送方的数字签名。

其中,若所述对应的算法未预先约定,所述对应的算法合并于所述数字签名中;若所述对应的算法为预先约定的,则所述对应的算法可以不合并于所述数字签名中,或者所述对应的算法也可以合并于所述数字签名中。

请参阅图1B,本发明实施例提供了一种数字签名生成方法,所述的数字签名生成方法的一种实现过程包括:

S111,签名发送方利用第一共享密钥及第一算法对第一签名信息计算获得第一码。

S112,签名发送方利用第二共享密钥及第二算法对第二签名信息计算获得第二码。

S113,合并签名发送方的识别号、签名数据、所述第一共享密钥的序列号、所述第一共享密钥的提供方识别号、所述第一码、所述第二共享密钥的序列号、所述第二共享密钥的提供方识别号和所述第二码,生成签名发送方的数字签名;若所述第一算法或/和所述第二算法为预先约定的,则不合并或合并于所述数字签名中;若所述第一算法或/和所述第二算法未预先约定,则合并于所述数字签名中。其中,所述第一共享密钥的提供方是所述多方认证中心中的第一认证中心;所述第二共享密钥的提供方是所述多方认证中心中的第二认证中心。

其中,所述第一共享密钥和第二共享密钥中的至少一个密钥为量子密钥,如此即具备了量子密钥的无条件安全性。优选地,所述第一共享密钥和第二共享密钥均为量子密钥。

在本发明的一实施例中,所述第一签名信息包括第一签名区数据,所述第一签名区数据包括所述签名发送方的识别号、所述签名数据、所述第一共享密钥的序列号、所述第一共享密钥的提供方识别号和所述第一算法;所述第二签名信息包括第二签名区数据,所述第二签名区数据包括所述签名发送方的识别号、所述签名数据、所述第二共享密钥的序列号、所述第二共享密钥的提供方识别号和所述第二算法。其中,若所述第一算法为预先约定的,则所述第一算法可以包括也可以不包括在所述第一签名区数据中;若所述第二算法为预先约定的,则所述第二算法可以包括也可以不包括在所述第二签名区数据中。

在本发明的一实施例中,所述第一签名信息包括第一摘要信息;所述第一摘要信息是利用第一摘要算法对所述第一签名区数据进行摘要计算获得的;所述第二签名信息包括第二摘要信息;所述第二摘要信息是利用第二摘要算法对所述第二签名区数据进行摘要计算获得的;若所述第一摘要算法或/和所述第二摘要算法为预先约定的,则合并或不合并于所述数字签名中;若所述第一摘要算法或/和所述第二摘要算法未预先约定,则合并于所述数字签名中。其中,若所述第一摘要算法为预先约定的,则所述第一摘要算法可以包括也可以不包括在所述第一签名区数据中;若所述第二摘要算法为预先约定的,则所述第二摘要算法可以包括也可以不包括在所述第二签名区数据中。

在本发明的一实施例中,所述第一签名信息与所述第二签名信息相同,均为签名信息;所述签名信息包括摘要信息;所述摘要信息是利用摘要算法对签名区数据进行摘要计算获得的;所述签名区数据包括所述签名发送方的识别号、所述签名数据、所述摘要算法,所述第一共享密钥的序列号、所述第一共享密钥的提供方识别号、所述第一算法,所述第二共享密钥的序列号、所述第二共享密钥的提供方识别号和所述第二算法;若所述摘要算法为预先约定的,则合并或不合并于所述数字签名中;若所述摘要算法未预先约定,则合并于所述数字签名中。其中,若所述摘要算法为预先约定的,则所述摘要算法可以包括也可以不包括在所述签名区数据中。

进一步,所述第一共享密钥的提供方与所述第二共享密钥的提供方不同,如此即实现了会签模式,避免了因一个认证中心出现问题而导致签名不安全的问题,进一步提高数字签名的安全性。

进一步,所述第一算法包括消息认证码算法或/和密钥加密算法;或/和所述第二算法包括消息认证码算法或/和密钥加密算法。其中,所述消息认证码算法包括哈希运算消息认证码算法;所述密钥加密算法包括对称密钥加密算法。

进一步,所述第一共享密钥选自第一共享密钥集;所述第一共享密钥集为所述第一共享密钥提供方与所述签名发送方共享的密钥集;或/和所述第二共享密钥选自第二共享密钥集;所述第二共享密钥集为所述第二共享密钥提供方与所述签名发送方共享的密钥集。

请参阅图1C,本发明实施例还提供了一种数字签名生成方法,所述的数字签名生成方法包括:

S121,签名发送方利用第一共享密钥及第一算法对第一签名信息计算获得第一码。

S122,签名发送方利用第二共享密钥及第二算法对第二签名信息计算获得第二码。

S123,签名发送方利用第三共享密钥及第三算法对第三签名信息计算获得第三码。

S124,合并签名发送方的识别号、签名数据、所述第一共享密钥的序列号、所述第一共享密钥的提供方识别号、所述第一码、所述第二共享密钥的序列号、所述第二共享密钥的提供方识别号、所述第二码、所述第三共享密钥的序列号、所述第三共享密钥的提供方识别号和所述第三码,生成签名发送方的数字签名;若所述第一算法,所述第二算法,或/和所述第三算法为预先约定的,则合并或不合并于所述数字签名中;若所述第一算法,所述第二算法,或/和所述第三算法未预先约定,则合并于所述数字签名中。其中,所述第一共享密钥的提供方是所述多方认证中心中的第一认证中心;所述第二共享密钥的提供方是所述多方认证中心中的第二认证中心;所述第三共享密钥的提供方是所述多方认证中心中的第三认证中心。

以此类推,所述签名发送方还可以利用第四共享密钥及第四算法对第四签名信息计算获得第四码,获得第五码、第六码、第七码、第八码等,此处不一一列举,但实施方式与第二码及第三码是类同的。

其中,所述第一共享密钥,第二共享密钥和第三共享密钥中的至少一个密钥为量子密钥,如此即具备了量子密钥的无条件安全性。优选地,所述第一共享密钥,第二共享密钥和第三共享密钥均为量子密钥。

在本发明的一实施例中,所述第一签名信息包括第一签名区数据,所述第一签名区数据包括所述签名发送方的识别号、所述签名数据、所述第一共享密钥的序列号、所述第一共享密钥的提供方识别号和所述第一算法;所述第二签名信息包括第二签名区数据,所述第二签名区数据包括所述签名发送方的识别号、所述签名数据、所述第二共享密钥的序列号、所述第二共享密钥的提供方识别号和所述第二算法;所述第三签名信息包括第三签名区数据,所述第三签名区数据包括所述签名发送方的识别号、所述签名数据、所述第三共享密钥的序列号、所述第三共享密钥的提供方识别号和所述第三算法。

在本发明的一实施例中,所述第一签名信息包括第一摘要信息;所述第一摘要信息是利用第一摘要算法对所述第一签名区数据进行摘要计算获得的;所述第二签名信息包括第二摘要信息;所述第二摘要信息是利用第二摘要算法对所述第二签名区数据进行摘要计算获得的;所述第三签名信息包括第三摘要信息;所述第三摘要信息是利用第三摘要算法对所述第三签名区数据进行摘要计算获得的;若所述第一摘要算法,所述第二摘要算法或/和所述第三摘要算法为预先约定的,则合并或不合并于所述数字签名中;若所述第一摘要算法,所述第二摘要算法或/和所述第三摘要算法未预先约定,则合并于所述数字签名中。

在本发明的一实施例中,所述第一签名信息与所述第二签名信息相同,均为签名信息;所述签名信息包括摘要信息;所述摘要信息是利用摘要算法对签名区数据进行摘要计算获得的;所述签名区数据包括所述签名发送方的识别号、所述签名数据、所述摘要算法,所述第一共享密钥的序列号、所述第一共享密钥的提供方识别号、所述第一算法,所述第二共享密钥的序列号、所述第二共享密钥的提供方识别号和所述第二算法;若所述摘要算法为预先约定的,则合并或不合并于所述数字签名中;若所述摘要算法未预先约定,则合并于所述数字签名中。

在本发明的一实施例中,所述第三签名信息与所述第一签名信息或/和所述第二签名信息相同,均为签名信息;所述签名信息包括摘要信息;所述摘要信息是利用摘要算法对签名区数据进行摘要计算获得的;所述签名区数据包括所述签名发送方的识别号、所述签名数据、所述摘要算法,所述第三共享密钥的序列号、所述第三共享密钥的提供方识别号、所述第三算法,所述第二共享密钥的序列号、所述第二共享密钥的提供方识别号,所述第二算法,或/和所述第一共享密钥的序列号、所述第一共享密钥的提供方识别号和所述第一算法;若所述摘要算法为预先约定的,则合并或不合并于所述数字签名中;若所述摘要算法未预先约定,则合并于所述数字签名中。

其中,所述签名信息中的摘要信息是利用摘要算法对签名区数据进行摘要计算获得的,其中的签名区数据可以是第一签名区数据与第二签名区数据的合并,也可以是第一签名区数据与第三签名区数据的合并,还可以是第二签名区数据与第三签名区数据的合并,或者是第一签名区数据、第二签名区数据与第三签名区数据的合并;即所述签名区数据可以是任意两种或以上的签名区数据合并。

进一步,所述第一共享密钥的提供方,所述第二共享密钥的提供方及所述第三共享密钥的提供方中有至少2个提供方不同,如此即实现了会签模式,避免了因一个认证中心出现问题而导致签名不安全的问题,进一步调高了数字签名的安全性。优选地,所述第一共享密钥的提供方,所述第二共享密钥的提供方及所述第三共享密钥的提供方均两两不同。

进一步,所述第一算法包括消息认证码算法或/和密钥加密算法;所述第二算法包括消息认证码算法或/和密钥加密算法;或/和所述第三算法包括消息认证码算法或/和密钥加密算法。其中,所述消息认证码算法包括哈希运算消息认证码算法;所述密钥加密算法包括对称密钥加密算法。

进一步,所述第一共享密钥选自第一共享密钥集;所述第一共享密钥集为所述第一共享密钥提供方与所述签名发送方共享的密钥集;所述第二共享密钥选自第二共享密钥集;所述第二共享密钥集为所述第二共享密钥提供方与所述签名发送方共享的密钥集;或/和所述第三共享密钥选自第三共享密钥集;所述第三共享密钥集为所述第三共享密钥提供方与所述签名发送方共享的密钥集。

本发明所述的数字签名生成方法的保护范围不限于本实施例列举的步骤执行顺序,凡是根据本发明的原理所做的现有技术的步骤增减、步骤替换所实现的方案都包括在本发明的保护范围内。

本发明提供以下几种具体实施例作为对本发明技术方案的进一步举例说明,但本发明的保护范围不限于本发明列举的具体实施例中,凡是根据本发明的原理所做的变形方案均包括在本发明的保护范围内。

请参阅图1D,本发明实施例提供了一种数字签名生成方法的应用场景示意图,其中,量子密钥分发中心KDC(Key Distribution Center)分发一批共享密钥(或称共享密钥集1)给认证中心CA1和签名发送方Alice;量子密钥分发中心KDC分发一批共享密钥(或称共享密钥集2)给认证中心CA2和签名发送方Alice;量子密钥分发中心KDC分发一批共享密钥(或称共享密钥集n)给认证中心CAn和签名发送方Alice。签名发送方Alice可以选择2个或者2个以上认证中心的共享密钥生成签名,例如选择CA1和CA2生成签名,或选择CA1,CA2和CAn生成签名,其中n代表3及以上数目的认证中心,如:选择CA1,CA2和CA3生成签名,或选择CA1,CA2,CA3和CA4生成签名,或选择CA1,CA2,CA3,CA4和CA5生成签名等。

实施例1:

1.1签名发送方Alice从与认证中心CA1的共享密钥集中选择一个共享密钥,记录该共享密钥序列号IDXKac1,使用IDXKac1对应的共享密钥Kac1选用一种哈希运算消息认证码算法HMACac1对签名区数据DATA1=(IDAlice,P,IDXKac1,SCA1,HMACac1)计算哈希运算消息认证码HMAC(DATA1,Kac1);其中,IDAlice为签名发送方的识别号,P为签名数据,SCA1为认证中心CA1的识别号。

1.2签名发送方Alice从与认证中心CA2的共享密钥集中选择一个共享密钥,记录该密钥序列号IDXKac2,使用IDXKac2对应密钥Kac2选用一种哈希运算消息认证码算法HMACac2对签名区数据DATA2=(IDAlice,P,IDXKac2,,SCA2,HMACac2)计算哈希运算消息认证码HMAC(DATA2,Kac2);其中,SCA2为认证中心CA2的识别号。

1.3合并签名发送方Alice的识别号IDAlice、签名数据P、密钥序列号IDXKac1、认证中心CA1识别号SCA1、哈希运算消息认证码算法HMACac1、哈希运算消息认证码HMAC(DATA1,Kac1)、密钥序列号IDXKac2、认证中心CA2识别号SCA2、哈希运算消息认证码算法HMACac2、哈希运算消息认证码HMAC(DATA2,Kac2)作为Alice签名:SIGAlice=(IDAlice,P,IDXKac1,SCA1,HMACac1,HMAC(DATA1,Kac1),IDXKac2,SCA2,HMACac2,HMAC(DATA2,Kac2))。

本实施例中哈希运算消息认证码算法HMACac1与哈希运算消息认证码算法HMACac2可以相同也可以不同。

可选地,哈希运算消息认证码算法HMACac1和HMACac2可以是事先约定好的,无需合并到签名SIGAlice中。

实施例2:

2.1签名发送方Alice从与认证中心CA1的共享密钥集中选择一个共享密钥,记录该共享密钥序列号IDXKac1,对IDXKac1对应密钥Kac1选用一种对称密钥加密算法ENCRPac1;然后从与认证中心CA2的共享密钥集中选择一个共享密钥,记录该共享密钥序列号IDXKac2,对IDXKac2对应密钥Kac2选用一种对称密钥加密算法ENCRPac2;再选择一种摘要算法HASH;最后合并签名数据P、Alice的识别号IDAlice、认证中心CA1的识别号SCA1、认证中心CA2的识别号SCA2生成签名区数据DATA=(IDAlice,P,HASH,IDXKac1,SCA1,ENCRPac1,IDXKac2,SCA2,ENCRPac2),对签名区数据DATA进行摘要运算获取摘要信息MAC(DATA);

2.2签名发送方Alice使用密钥Kac1以及对应的对称密钥加密算法ENCRPac1对摘要信息MAC(DATA)进行加密Kac1(MAC(DATA));

2.3签名发送方Alice使用密钥Kac2以及对应的对称密钥加密算法ENCRPac2对摘要信息MAC(DATA)进行加密Kac2(MAC(DATA));

2.4合并签名发送方Alice的识别号IDAlice、签名数据P、摘要算法HASH、密钥序列号IDXKac1、认证中心CA1识别号SCA1、对称密钥加密算法ENCRPac1、加密后摘要信息Kac1(MAC(DATA))、密钥序列号IDXKac2、认证中心CA2识别号SCA2、对称密钥加密算法ENCRPac2、加密后摘要信息Kac2(MAC(DATA))作为Alice签名:SIGAlice=(IDAlice,P,HASH,IDXKac1,SCA1,ENCRPac1,Kac1(MAC(DATA)),IDXKac2,SCA2,ENCRPac2,Kac2(MAC(DATA)))。

本实施例中对称密钥加密算法ENCRPac1与对称密钥加密算法ENCRPac2可相同也可不相同。

可选地,摘要算法HASH以及对称密钥加密算法ENCRPac1、ENCRPac2可以是事先约定好的,无需合并到签名SIGAlice中。

实施例3:

3.1签名发送方Alice从与认证中心CA1的共享密钥集中选择一个共享密钥,记录该共享密钥序列号IDXKac1,对IDXKac1对应密钥Kac1选用一种对称密钥加密算法ENCRPac1;再选择一种摘要算法HASHac1;最后合并签名数据P、Alice的识别号IDAlice和认证中心CA1识别号SCA1生成签名区数据DATA1=(IDAlice,P,HASHac1,IDXKac1,SCA1,ENCRPac1),对签名区数据DATA1进行摘要运算获取摘要信息MAC ac1(DATA1);

3.2签名发送方Alice使用密钥Kac1以及对应的对称密钥加密算法ENCRPac1对摘要信息MACac1(DATA1)进行加密Kac1(MACac1(DATA1));

3.3签名发送方Alice从与认证中心CA2的共享密钥集中选择一个共享密钥,记录该共享密钥序列号IDXKac2,对IDXKac2对应密钥Kac2选用一种对称密钥加密算法ENCRPac2;再选择一种摘要算法HASHac2;最后合并签名数据P、Alice的识别号IDAlice和认证中心CA2识别号SCA2生成签名区数据DATA2=(IDAlice,P,HASHac2,IDXKac2,SCA2,ENCRPac2),对签名区数据DATA2进行摘要运算获取摘要信息MAC ac2(DATA2);

3.4签名发送方Alice使用密钥Kac2以及对应的对称密钥加密算法ENCRPac2对摘要信息MACac2(DATA2)进行加密Kac2(MACac2(DATA2));

3.5合并签名发送方Alice的识别号IDAlice、签名数据P、摘要算法HASHac1、密钥序列号IDXKac1、认证中心CA1识别号SCA1、对称密钥加密算法ENCRPac1、加密后摘要信息Kac1(MACac1(DATA1))、摘要算法HASHac2、密钥序列号IDXKac2、认证中心CA2识别号SCA2、对称密钥加密算法ENCRPac2、加密后摘要信息Kac2(MACac2(DATA2))作为Alice签名:SIGAlice=(IDAlice,P,HASHac1,IDXKac1,SCA1,ENCRPac1,Kac1(MACac1(DATA1)),HASHac2,IDXKac2,SCA2,ENCRPac2,Kac2(MACac2(DATA2)))。

本实施例中摘要算法HASHac1与摘要算法HASHac2可相同也可以不相同,对称密钥加密算法ENCRPac1与对称密钥加密算法ENCRPac2可相同也可不相同。

可选地,摘要算法HASHac1、HASHac2以及对称密钥加密算法ENCRPac1、ENCRPac2可以是事先约定好的,无需合并到签名SIGAlice中。

本发明实施例还提供了一种计算机存储介质,所述计算机存储介质存储有第一计算机程序;所述第一计算机程序被处理器调用时执行本发明所述的数字签名生成方法。

请参阅图1E,本发明实施例还提供了一种数字签名生成终端,所述数字签名生成终端100包括:第一输入端110,第一存储器120,第一处理器130;所述第一输入端110用于输入数字签名相关参数;所述第一存储器120用于存储第一计算机程序及所述数字签名相关参数;所述第一处理器130与所述第一存储器120通信相连,调用所述第一计算机程序和所述数字签名相关参数时执行本发明所述的数字签名生成方法,生成数字签名。

本发明所述的数字签名生成终端可以实现本发明所述的数字签名生成方法,但本发明所述的数字签名生成方法的实现装置包括但不限于本实施例列举的数字签名生成终端的结构,凡是根据本发明的原理所做的现有技术的结构变形和替换,都包括在本发明的保护范围内。

请参阅图2A,本发明实施例还提供了一种数字签名发送方法,包括:签名发送方将本发明所述的数字签名生成方法生成的数字签名发送给签名接收方。

请参阅图2B,本发明实施例还提供了一种数字签名发送方法,包括:签名发送方利用共享密钥Kab将本发明所述的数字签名生成方法生成的数字签名加密后发送给签名接收方;所述共享密钥Kab是签名发送方与签名接收方共享的密钥。

本发明提供以下几种具体实施例作为对本发明技术方案的进一步举例说明,但本发明的保护范围不限于本发明列举的具体实施例中,凡是根据本发明的原理所做的变形方案均包括在本发明的保护范围内。

请参阅图2C,本发明实施例提供了一种数字签名发送方法的应用场景示意图,其中,量子密钥分发中心KDC分发共享密钥Kab给签名发送方Alice;量子密钥分发中心KDC分发共享密钥Kab给签名接收方Bob;签名发送方Alice使用Kab对Alice签名SIGAlice进行加密Kab(SIGAlice),并发送给Bob。签名发送方Alice也可以直接发送签名SIGAlice给签名接收方Bob。

本发明所述的数字签名发送方法的保护范围不限于本实施例列举的步骤执行顺序,凡是根据本发明的原理所做的现有技术的步骤增减、步骤替换所实现的方案都包括在本发明的保护范围内。

请参阅图3A,本发明实施例还提供了一种数字签名验证方法,所述数字签名验证方法包括:

S301,签名接收方获取签名发送方的数字签名;所述数字签名由所述的数字签名生成方法生成;

S302,签名接收方根据所述数字签名中多方认证中心的识别号,将所述数字签名分别发送给多方认证中心进行验证,并接收所述多方认证中心反馈的验证结果;当所述多方认证中心反馈的验证结果均为通过时,签名接收方确认所述数字签名有效;否则,签名接收方确认所述数字签名无效。

请参阅图3B,本发明实施例还提供了一种数字签名验证方法,所述数字签名验证方法包括:

S311,签名接收方获取签名发送方的数字签名;所述数字签名由本发明所述的数字签名生成方法生成;

S312,签名接收方根据所述数字签名中的第一共享密钥的提供方识别号,将所述数字签名发送给第一共享密钥的提供方进行验证,并接收所述第一共享密钥的提供方反馈的第一验证结果;所述第一共享密钥的提供方是所述多方认证中心中的第一认证中心;

S313,签名接收方根据所述数字签名中的第二共享密钥的提供方识别号,将所述数字签名发送给第二共享密钥的提供方进行验证,并接收所述第二共享密钥的提供方反馈的第二验证结果;所述第二共享密钥的提供方是所述多方认证中心中的第二认证中心;

S314,签名接收方判断所述第一验证结果和所述第二验证结果是否均为通过;

S315,若是,则签名接收方确认所述数字签名有效;

S316,否则,签名接收方确认所述数字签名无效。

在本发明的一实施例中,所述签名接收方获取签名发送方的数字签名的一种实现过程包括:所述签名接收方接收所述签名发送方发送的所述数字签名;或所述签名接收方利用共享密钥Kab解密获得所述签名发送方发送的所述数字签名;所述共享密钥Kab是所述签名发送方与所述签名接收方共享的密钥。

在本发明的一实施例中,所述签名接收方将所述数字签名发送给第一共享密钥的提供方或第二共享密钥的提供方进行验证的一种实现过程包括:所述签名接收方将所述数字签名的全部数据发送给所述第一共享密钥的提供方或所述第二共享密钥的提供方进行验证;或所述签名接收方将所述数字签名中的与所述第一共享密钥的提供方相关的数据发送给所述第一共享密钥的提供方进行验证,或将所述数字签名中的与所述第二共享密钥的提供方相关的数据发送给所述第二共享密钥的提供方进行验证。

在本发明的一实施例中,所述第一共享密钥的提供方对所述数字签名进行验证的一种实现过程包括:所述第一共享密钥的提供方根据所述数字签名中的签名发送方的识别号和第一共享密钥的序列号获取对应的第一共享密钥,并根据所述数字签名中的第一算法、第一签名信息和所述第一共享密钥计算获得第一验证码;所述第一共享密钥的提供方将所述第一验证码与所述数字签名中的第一码进行对比,若相同则反馈验证通过的第一验证结果,否则反馈验证不通过的第一验证结果。若所述第一算法为预先约定的,则合并或不合并于所述数字签名中;若所述第一算法未预先约定,则合并于所述数字签名中。

所述第二共享密钥的提供方对所述数字签名进行验证的一种实现过程包括:所述第二共享密钥的提供方根据所述数字签名中的签名发送方的识别号和第二共享密钥的序列号获取对应的第二共享密钥,并根据所述数字签名中的第二算法、第二签名信息和所述第二共享密钥计算获得第二验证码;所述第二共享密钥的提供方将所述第二验证码与所述数字签名中的第二码进行对比,若相同则反馈验证通过的第二验证结果,否则反馈验证不通过的第二验证结果。若所述第二算法为预先约定的,则合并或不合并于所述数字签名中;若所述第二算法未预先约定,则合并于所述数字签名中。

在本发明的一实施例中,所述第一签名信息包括第一签名区数据,所述第一签名区数据包括签名发送方的识别号、签名数据、所述第一共享密钥的序列号、所述第一共享密钥的提供方识别号、所述第一算法;所述第二签名信息包括第二签名区数据,所述第二签名区数据包括签名发送方的识别号、所述签名数据、所述第二共享密钥的序列号、所述第二共享密钥的提供方识别号、所述第二算法。其中,若所述第一算法为预先约定的,则所述第一算法可以包括也可以不包括在所述第一签名区数据中;若所述第二算法为预先约定的,则所述第二算法可以包括也可以不包括在所述第二签名区数据中。

在本发明的一实施例中,所述第一签名信息包括第一摘要信息;所述第一摘要信息是利用第一摘要算法对所述第一签名区数据进行摘要计算获得的;所述第二签名信息包括第二摘要信息;所述第二摘要信息是利用第二摘要算法对所述第二签名区数据进行摘要计算获得的。若所述第一摘要算法或/和所述第二摘要算法为预先约定的,则不合并或合并于所述数字签名中;若所述第一摘要算法或/和所述第二摘要算法未预先约定,则合并于所述数字签名中。其中,若所述第一摘要算法为预先约定的,则所述第一摘要算法可以包括也可以不包括在所述第一签名区数据中;若所述第二摘要算法为预先约定的,则所述第二摘要算法可以包括也可以不包括在所述第二签名区数据中。

在本发明的一实施例中,所述第一签名信息与所述第二签名信息相同,均为签名信息;所述签名信息包括摘要信息;所述摘要信息是利用摘要算法对签名区数据进行摘要计算获得的;所述签名区数据包括所述签名发送方的识别号、所述签名数据、所述摘要算法,所述第一共享密钥的序列号、所述第一共享密钥的提供方识别号、所述第一算法,所述第二共享密钥的序列号、所述第二共享密钥的提供方识别号和所述第二算法。若所述摘要算法为预先约定的,则合并或不合并于所述数字签名中;若所述摘要算法未预先约定,则合并于所述数字签名中。其中,若所述摘要算法为预先约定的,则所述摘要算法可以包括也可以不包括在所述签名区数据中。

请参阅图3C,本发明实施例还提供了一种数字签名验证方法,所述数字签名验证方法包括:

S321,签名接收方获取签名发送方的数字签名;所述数字签名由本发明所述的数字签名生成方法生成;

S322,签名接收方根据所述数字签名中的第一共享密钥的提供方识别号,将所述数字签名发送给第一共享密钥的提供方进行验证,并接收所述第一共享密钥的提供方反馈的第一验证结果;所述第一共享密钥的提供方是所述多方认证中心中的第一认证中心;

S323,签名接收方根据所述数字签名中的第二共享密钥的提供方识别号,将所述数字签名发送给第二共享密钥的提供方进行验证,并接收所述第二共享密钥的提供方反馈的第二验证结果;所述第二共享密钥的提供方是所述多方认证中心中的第二认证中心;

S324,签名接收方根据所述数字签名中的第三共享密钥的提供方识别号,将所述数字签名发送给第三共享密钥的提供方进行验证,并接收所述第三共享密钥的提供方反馈的第三验证结果;所述第三共享密钥的提供方是所述多方认证中心中的第三认证中心;

S325,所述签名接收方判断所述第一验证结果,所述第二验证结果和所述第三验证结果是否均为通过;

S326,若是,则签名接收方确认所述数字签名有效;

S327,否则,签名接收方确认所述数字签名无效。

若所述数字签名还需要第四共享密钥的提供方、第五共享密钥的提供方、第六共享密钥的提供方、第七共享密钥的提供方、第八共享密钥的提供方等进行验证,则可以根据本发明所述的数字签名验证方法的验证原理,依次类推,实现多方验证,本发明不一一列举。

在本发明的一实施例中,所述签名接收方获取签名发送方的数字签名的一种实现过程包括:所述签名接收方接收所述签名发送方发送的所述数字签名;或所述签名接收方利用共享密钥Kab解密获得所述签名发送方发送的所述数字签名;所述共享密钥Kab是所述签名发送方与所述签名接收方共享的密钥。

在本发明的一实施例中,所述签名接收方将所述数字签名发送给第一共享密钥的提供方,第二共享密钥的提供方或/和第三共享密钥的提供方进行验证的一种实现过程包括:所述签名接收方将所述数字签名的全部数据发送给所述第一共享密钥的提供方,所述第二共享密钥的提供方或/和所述第三共享密钥的提供方进行验证;或所述签名接收方将所述数字签名中的与所述第一共享密钥的提供方相关的数据发送给所述第一共享密钥的提供方进行验证,或将所述数字签名中的与所述第二共享密钥的提供方相关的数据发送给所述第二共享密钥的提供方进行验证,或将所述数字签名中的与所述第三共享密钥的提供方相关的数据发送给所述第三共享密钥的提供方进行验证。

在本发明的一实施例中,所述第一共享密钥的提供方对所述数字签名进行验证的一种实现过程包括:所述第一共享密钥的提供方根据所述数字签名中的签名发送方的识别号和第一共享密钥的序列号获取对应的第一共享密钥,并根据所述数字签名中的第一算法、第一签名信息和所述第一共享密钥计算获得第一验证码;所述第一共享密钥的提供方将所述第一验证码与所述数字签名中的第一码进行对比,若相同则反馈验证通过的第一验证结果,否则反馈验证不通过的第一验证结果。若所述第一算法为预先约定的,则合并或不合并于所述数字签名中;若所述第一算法未预先约定,则合并于所述数字签名中。

所述第二共享密钥的提供方对所述数字签名进行验证的一种实现过程包括:所述第二共享密钥的提供方根据所述数字签名中的签名发送方的识别号和第二共享密钥的序列号获取对应的第二共享密钥,并根据所述数字签名中的第二算法、第二签名信息和所述第二共享密钥计算获得第二验证码;所述第二共享密钥的提供方将所述第二验证码与所述数字签名中的第二码进行对比,若相同则反馈验证通过的第二验证结果,否则反馈验证不通过的第二验证结果。若所述第二算法为预先约定的,则合并或不合并于所述数字签名中;若所述第二算法未预先约定,则合并于所述数字签名中。

所述第三共享密钥的提供方对所述数字签名进行验证的一种实现过程包括:所述第三共享密钥的提供方根据所述数字签名中的签名发送方的识别号和第三共享密钥的序列号获取对应的第三共享密钥,并根据所述数字签名中的第三算法、第三签名信息和所述第三共享密钥计算获得第三验证码;所述第三共享密钥的提供方将所述第三验证码与所述数字签名中的第三码进行对比,若相同则反馈验证通过的第三验证结果,否则反馈验证不通过的第三验证结果。若所述第三算法为预先约定的,则合并或不合并于所述数字签名中;若所述第三算法未预先约定,则合并于所述数字签名中。

在本发明的一实施例中,所述第一签名信息包括第一签名区数据,所述第一签名区数据包括签名发送方的识别号、签名数据、所述第一共享密钥的序列号、所述第一共享密钥的提供方识别号、所述第一算法;所述第二签名信息包括第二签名区数据,所述第二签名区数据包括签名发送方的识别号、所述签名数据、所述第二共享密钥的序列号、所述第二共享密钥的提供方识别号、所述第二算法;所述第三签名信息包括第三签名区数据,所述第三签名区数据包括签名发送方的识别号、签名数据、所述第三共享密钥的序列号、所述第三共享密钥的提供方识别号和所述第三算法。其中,若所述第一算法为预先约定的,则所述第一算法可以包括也可以不包括在所述第一签名区数据中;若所述第二算法为预先约定的,则所述第二算法可以包括也可以不包括在所述第二签名区数据中;若所述第三算法为预先约定的,则所述第三算法可以包括也可以不包括在所述第三签名区数据中。

在本发明的一实施例中,所述第一签名信息包括第一摘要信息;所述第一摘要信息是利用第一摘要算法对所述第一签名区数据进行摘要计算获得的;所述第二签名信息包括第二摘要信息;所述第二摘要信息是利用第二摘要算法对所述第二签名区数据进行摘要计算获得的;所述第三签名信息包括第三摘要信息;所述第三摘要信息是利用第三摘要算法对所述第三签名区数据进行摘要计算获得的。若所述第一摘要算法,所述第二摘要算法或/和所述第三摘要算法为预先约定的,则合并或不合并于所述数字签名中;若所述第一摘要算法,所述第二摘要算法或/和所述第三摘要算法未预先约定,则合并于所述数字签名中。其中,若所述第一摘要算法为预先约定的,则所述第一摘要算法可以包括也可以不包括在所述第一签名区数据中;若所述第二摘要算法为预先约定的,则所述第二摘要算法可以包括也可以不包括在所述第二签名区数据中;若所述第三摘要算法为预先约定的,则所述第三摘要算法可以包括也可以不包括在所述第三签名区数据中。

在本发明的一实施例中,所述第一签名信息与所述第二签名信息相同,均为签名信息;所述签名信息包括摘要信息;所述摘要信息是利用摘要算法对签名区数据进行摘要计算获得的;所述签名区数据包括所述签名发送方的识别号、所述签名数据、所述摘要算法,所述第一共享密钥的序列号、所述第一共享密钥的提供方识别号、所述第一算法,所述第二共享密钥的序列号、所述第二共享密钥的提供方识别号和所述第二算法。

在本发明的一实施例中,所述第三签名信息与所述第一签名信息或/和所述第二签名信息相同,均为签名信息;所述签名信息包括摘要信息;所述摘要信息是利用摘要算法对签名区数据进行摘要计算获得的;所述签名区数据包括所述签名发送方的识别号、所述签名数据、所述摘要算法,所述第三共享密钥的序列号、所述第三共享密钥的提供方识别号、所述第三算法,所述第二共享密钥的序列号、所述第二共享密钥的提供方识别号、所述第二算法,或/和所述第一共享密钥的序列号、所述第一共享密钥的提供方识别号、所述第一算法。

其中,所述签名信息中的摘要信息是利用摘要算法对签名区数据进行摘要计算获得的,其中的签名区数据可以是第一签名区数据与第二签名区数据的合并,也可以是第一签名区数据与第三签名区数据的合并,还可以是第二签名区数据与第三签名区数据的合并,或者是第一签名区数据、第二签名区数据与第三签名区数据的合并;即所述签名区数据可以是任意两种或以上签名区数据的合并。若所述摘要算法为预先约定的,则不合并或合并于所述数字签名中;若所述摘要算法未预先约定,则合并于所述数字签名中。其中,若所述摘要算法为预先约定的,则所述摘要算法可以包括也可以不包括在所述签名区数据中。

本发明所述的数字签名验证方法的保护范围不限于本实施例列举的步骤执行顺序,凡是根据本发明的原理所做的现有技术的步骤增减、步骤替换所实现的方案都包括在本发明的保护范围内。

本发明提供以下几种具体实施例作为对本发明技术方案的进一步举例说明,但本发明的保护范围不限于本发明列举的具体实施例中,凡是根据本发明的原理所做的变形方案均包括在本发明的保护范围内。

请参阅图3D,本发明实施例提供了一种数字签名验证方法的应用场景示意图,其中,签名接收方Bob获取签名发送方Alice签名后进行验证。

实施例4:

4.1签名接收方Bob获取签名发送方Alice签名。

例如:签名接收方Bob使用共享秘钥Kab对接收到的Alice签名进行解密Kab-(Kab(SIGAlice)),获得加密前的Alice签名SIGAlice。

例如:签名接收方Bob直接获取Alice签名SIGAlice,不需要解密。

4.2签名接收方Bob根据认证中心识别号SCA1将Alice签名数据发送给认证中心CA1进行签名验证。

例如:签名接收方Bob根据认证中心识别号SCA1将Alice签名全部数据发送给认证中心CA1进行签名验证。

例如:签名接收方Bob根据认证中心识别号SCA1将Alice签名中与CA1相关的数据发送给认证中心CA1进行签名验证。

如果选用上述数字签名生成的实施例1,则Bob将(IDAlice,P,IDXKac1,HMACac1,HMAC(DATA1,Kac1))发送给认证中心CA1进行签名验证。

如果选用上述数字签名生成的实施例2,则Bob将(IDAlice,P,HASH,IDXKac1,ENCRPac1Kac1(MAC(DATA)))发送给认证中心CA1进行签名验证。

如果选用上述数字签名生成的实施例3,则Bob将(IDAlice,P,HASHac1,IDXKac1,ENCRPac1,Kac1(MACac1(DATA1)))发送给认证中心CA1进行签名验证。

4.3认证中心CA1验证Alice签名。

例如:对应上述数字签名生成的实施例1的签名验证过程为:认证中心CA1根据Alice识别号IDAlice和密钥序列号IDXKac1获取对应密钥Kac1,根据哈希运算消息认证码算法HMACac1使用Kac1对签名区数据DATA1计算哈希运算消息认证码HMAC(DATA1,Kac1),与Alice签名中HMAC(DATA1,Kac1)对比,如果相同则表示验证通过,否则验证不通过。认证中心CA1将验证结果返回给Bob。

例如:对应上述数字签名生成的实施例2的签名验证过程为:认证中心CA1根据摘要算法HASH对签名区数据DATA进行HASH运算获得摘要信息MAC(DATA);认证中心CA1根据Alice识别号IDAlice和密钥序列号IDXKac1获取对应密钥Kac1,根据对称密钥加密算法ENCRPac1,对摘要信息MAC(DATA)进行加密Kac1(MAC(DATA));认证中心CA1将加密结果Kac1(MAC(DATA))与Alice签名中的Kac1(MAC(DATA))对比,如果相同则表示验证通过,否则验证不通过。认证中心CA1将验证结果返回给Bob。

例如:对应上述数字签名生成的实施例3的签名验证过程为:认证中心CA1根据摘要算法HASHac1对签名区数据DATA1进行HASH运算获得摘要信息MACac1(DATA1);认证中心CA1根据Alice识别号IDAlice和密钥序列号IDXKac1获取对应密钥Kac1,根据对称密钥加密算法ENCRPac1,对摘要信息MACac1(DATA1)进行加密Kac1(MACac1(DATA1));认证中心CA1将获得的加密结果Kac1(MACac1(DATA1))与Alice签名中Kac1(MACac1(DATA1))对比,如果相同则表示验证通过,否则验证不通过。认证中心CA1将验证结果返回给Bob。

4.4签名接收方Bob根据认证中心识别号SCA2将Alice签名数据发送给认证中心CA2进行签名验证。

例如:签名接收方Bob根据认证中心识别号SCA2将Alice签名全部数据发送给认证中心CA2进行签名验证。

例如:签名接收方Bob根据认证中心识别号SCA2将Alice签名中与CA2相关数据发送给认证中心CA2进行签名验证。

如果选用上述数字签名生成的实施例1,则Bob将(IDAlice,P,IDXKac2,HMACac2,HMAC(DATA2,Kac2))发送给认证中心CA2进行签名验证。

如果选用上述数字签名生成的实施例2,则Bob将(IDAlice,P,HASH,IDXKac2,ENCRPac2,Kac2(MAC(DATA)))发送给认证中心CA2进行签名验证。

如果选用上述数字签名生成的实施例3,则Bob将(IDAlice,P,HASHac2,IDXKac2,ENCRPac2,Kac2(MACac2(DATA2)))发送给认证中心CA2进行签名验证。

4.5认证中心CA2验证Alice签名。

例如:对应上述数字签名生成的实施例1的签名验证过程为:认证中心CA2根据Alice识别号IDAlice和密钥序列号IDXKac2获取对应密钥Kac2,根据哈希运算消息认证码算法HMACac2使用Kac2对签名区数据DATA2计算哈希运算消息认证码HMAC(DATA2,Kac2),与Alice签名中HMAC(DATA2,Kac2)对比,如果相同则表示验证通过,否则验证不通过。认证中心CA2将验证结果返回给Bob。

例如:对应上述数字签名生成的实施例2的签名验证过程为:认证中心CA2根据摘要算法HASH对签名区数据DATA进行HASH运算获得摘要信息MAC(DATA);认证中心CA2根据Alice识别号IDAlice和密钥序列号IDXKac2获取对应密钥Kac2,根据对称密钥加密算法ENCRPac2,对摘要信息MAC(DATA)进行加密Kac2(MAC(DATA));认证中心CA2将获得的加密结果Kac2(MAC(DATA))与Alice签名中Kac2(MAC(DATA))对比,如果相同则表示验证通过,否则验证不通过。认证中心CA2将验证结果返回给Bob。

例如:对应上述数字签名生成的实施例3的签名验证过程为:认证中心CA2根据摘要算法HASHac2对签名区数据DATA2进行HASH运算获得摘要信息MACac2(DATA2);认证中心CA2根据Alice识别号IDAlice和密钥序列号IDXKac2获取对应密钥Kac2,根据对称密钥加密算法ENCRPac2,对摘要信息MACac2(DATA2)进行加密Kac2(MACac2(DATA2));认证中心CA2将获得的加密结果Kac2(MACac2(DATA2))与Alice签名中Kac2(MACac2(DATA2))对比,如果相同则表示验证通过,否则验证不通过。认证中心CA2将验证结果返回给Bob。

请参阅图3E,本发明实施例提供了另一种数字签名验证方法的应用场景示意图,其中,签名接收方Bob获取Alice签名后,对签名区数据进行摘要计算,将摘要计算结果连同签名分别发给CA1和CA2验证。

实施例5:

5.1签名接收方Bob获取签名发送方Alice签名。

例如:签名接收方Bob使用Kab对Alice签名进行解密Kab-(Kab(SIGAlice));

例如:签名接收方Bob直接获取Alice签名SIGAlice,不需要解密。

5.2签名接收方Bob根据摘要算法对签名区数据进行摘要计算。

例如:对应上述数字签名生成的实施例2的签名验证过程为:签名接收方Bob根据摘要算法HASH对签名区数据进行HASH运算获得摘要信息MAC(DATA)。

例如:对应上述数字签名生成的实施例3的签名验证过程为:签名接收方Bob根据摘要算法HASHac1对签名区数据DATA1进行HASH运算获得摘要信息MACac1(DATA1);签名接收方Bob根据摘要算法HASHac2对签名区数据DATA2进行HASH运算获得摘要信息MACac2(DATA2)。

5.3签名接收方Bob根据认证中心识别号SCA1将步骤5.2中摘要计算结果和Alice签名数据发送给认证中心CA1进行签名验证。

例如:签名接收方Bob根据认证中心识别号SCA1将步骤5.2中摘要计算结果和Alice签名全部数据发送给认证中心CA1进行签名验证。

例如:签名接收方Bob根据认证中心识别号SCA1将步骤5.2中摘要计算结果和Alice签名中与CA1相关数据发送给认证中心CA1进行签名验证。

例如:如果选用上述数字签名生成的实施例2,则Bob将摘要计算结果MAC(DATA)和Alice签名部分数据(IDAlice,IDXKac1,ENCRPac1,Kac1(MAC(DATA)))发送给认证中心CA1进行签名验证。

如果选用上述数字签名生成的实施例3,则Bob将摘要计算结果MACac1(DATA1)和Alice签名部分数据(IDAlice,IDXKac1,ENCRPac1,Kac1(MAC ac1(DATA1)))发送给认证中心CA1进行签名验证。

5.4认证中心CA1验证Alice签名。

例如:对应上述数字签名生成的实施例2的签名验证过程为:认证中心CA1根据Alice识别号IDAlice和密钥序列号IDXKac1获取对应密钥Kac1,根据对称密钥加密算法ENCRPac1,对摘要信息MAC(DATA)进行加密Kac1(MAC(DATA));

认证中心CA1将获得的加密结果Kac1(MAC(DATA))与Alice签名中Kac1(MAC(DATA))对比,如果相同则表示验证通过,否则验证不通过。认证中心CA1将验证结果返回给Bob。

例如:对应上述数字签名生成的实施例3的签名验证过程为:认证中心CA1根据Alice识别号IDAlice和密钥序列号IDXKac1获取对应密钥Kac1,根据对称密钥加密算法ENCRPac1,对摘要信息MACac1(DATA1)进行加密Kac1(MACac1(DATA1));认证中心CA1将获得的加密结果Kac1(MACac1(DATA1))与Alice签名中Kac1(MACac1(DATA1))对比,如果相同则表示验证通过,否则验证不通过。认证中心CA1将验证结果返回给Bob。

5.5签名接收方Bob根据认证中心识别号SCA2将步骤5.2中摘要计算结果和Alice签名数据发送给认证中心CA2进行签名验证。

例如:签名接收方Bob根据认证中心识别号SCA2将摘要计算结果和Alice签名全部数据发送给认证中心CA2进行签名验证。

例如:签名接收方Bob根据认证中心识别号SCA2将摘要计算结果和Alice签名中与CA2相关数据发送给认证中心CA2进行签名验证。

例如:如果选用上述数字签名生成的实施例2,则Bob将摘要计算结果MAC(DATA)和Alice签名部分数据(IDAlice,IDXKac2,ENCRPac2,Kac2(MAC(DATA)))发送给认证中心CA2进行签名验证。

如果选用上述数字签名生成的实施例3,则Bob将摘要计算结果MACac2(DATA2)和Alice签名部分数据(IDAlice,IDXKac2,ENCRPac2,Kac2(MACac2(DATA2)))发送给认证中心CA2进行签名验证。

5.6认证中心CA2验证Alice签名。

例如:对应上述数字签名生成的实施例2的签名验证过程为:认证中心CA2根据Alice识别号IDAlice和密钥序列号IDXKac2获取对应密钥Kac2,根据对称密钥加密算法ENCRPac2,对摘要信息MAC(DATA)进行加密Kac2(MAC(DATA));认证中心CA2将获得的加密结果Kac2(MAC(DATA))与Alice签名中Kac2(MAC(DATA))对比,如果相同则表示验证通过,否则验证不通过。认证中心CA2将验证结果返回给Bob。

例如:对应上述数字签名生成的实施例3的签名验证过程为:认证中心CA2根据Alice识别号IDAlice和密钥序列号IDXKac2获取对应密钥Kac2,根据对称密钥加密算法ENCRPac2,对摘要信息MACac2(DATA2)进行加密Kac2(MACac2(DATA2));认证中心CA2将获得的加密结果Kac2(MACac2(DATA2))与Alice签名中Kac2(MACac2(DATA2))对比,如果相同则表示验证通过,否则验证不通过。认证中心CA2将验证结果返回给Bob。

本发明实施例还提供了一种计算机存储介质,所述计算机存储介质存储有第二计算机程序;所述第二计算机程序被处理器调用时执行本发明图3A所述的数字签名验证方法。

本发明实施例还提供了一种计算机存储介质,所述计算机存储介质存储有第三计算机程序;所述第三计算机程序被处理器调用时执行本发明图3B所述的数字签名验证方法。

本发明实施例还提供了一种计算机存储介质,所述计算机存储介质存储有第四计算机程序;所述第四计算机程序被处理器调用时执行本发明图3C所述的数字签名验证方法。

请参阅图4,本发明实施例还提供了一种数字签名验证终端,所述数字签名验证终端400包括:第二输入端410,第二存储器420,第二处理器430。所述第二输入端410用于输入数字签名相关参数;所述第二存储器420用于存储第二计算机程序及所述数字签名相关参数;所述第二处理器430与所述第二存储器420通信相连,调用所述第二计算机程序和所述数字签名相关参数时执行本发明图3A所述的数字签名验证方法,验证数字签名是否有效。

请参阅图5,本发明实施例还提供了一种数字签名验证终端,所述数字签名验证终端500包括:第三输入端510,第三存储器520,第三处理器530。所述第三输入端510用于输入数字签名相关参数;所述第三存储器520用于存储第三计算机程序及所述数字签名相关参数;所述第三处理器530与所述第三存储器520通信相连,调用所述第三计算机程序和所述数字签名相关参数时执行本发明图3B所述的数字签名验证方法,验证数字签名是否有效。

请参阅图6,本发明实施例还提供了一种数字签名验证终端,所述数字签名验证终端600包括:第四输入端610,第四存储器620,第四处理器630。所述第四输入端610用于输入数字签名相关参数;所述第四存储器620用于存储第四计算机程序及所述数字签名相关参数;所述第四处理器630与所述第四存储器620通信相连,调用所述第四计算机程序和所述数字签名相关参数时执行本发明图3C所述的数字签名验证方法,验证数字签名是否有效。

本发明所述的数字签名验证终端可以实现本发明所述的数字签名验证方法,但本发明所述的数字签名验证方法的实现装置包括但不限于本实施例列举的数字签名验证终端的结构,凡是根据本发明的原理所做的现有技术的结构变形和替换,都包括在本发明的保护范围内。

本发明利用会签模式或量子密钥或二者相结合的方式实现数字签名。

会签模式可以保证唯有签名方拥有完整的数字签名密钥,单个认证中心都只有部分数字签名密钥,认证中心也无法伪造签名方的数字签名,从而进一步提高数字签名的安全性。

量子密钥以量子力学为基础,它的安全性是建立在测不准原理、量子的不可克隆及量子相干性等物理特性之上的,被证明是无条件安全的,从而更进一步提高数字签名的安全性。

会签模式与量子密钥结合能从根本上解决基于公钥密码系统的数字签名的安全隐患。

综上所述,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。

上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

再多了解一些
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1