数字签名方法、装置、设备及介质、系统与流程

文档序号:19871909发布日期:2020-02-08 05:57阅读:171来源:国知局
数字签名方法、装置、设备及介质、系统与流程

本发明属于数据安全技术领域,尤其涉及一种数字签名方法、装置、设备及介质、系统。



背景技术:

现有的多重数字签名技术一般是基于传统公钥密码系统、身份密码系统或无证书密码系统实现的。

其中,在基于传统公钥密码系统实现的多重数字签名技术中,用户的公钥需要证书颁发机构(certificateauthority,ca)提供数字证书来认证,ca证书库的维护和管理需要较大的成本;在基于身份密码系统的多重数字签名技术中,用户的私钥是由第三方可信机构的私钥生成器(privatekeygeneration,pkg)生成的,使得生成用户的私钥的成本较高;在基于无证书密码系统的多重数字签名技术中,密钥生成中心(keygenerationcenter,kgc)为用户生成的部分私钥必须通过安全信道发送给用户,使得传输成本较高。



技术实现要素:

本发明实施例提供一种数字签名方法、装置、设备及介质、系统,能够降低数字签名的成本。

第一方面,本发明实施例提供了一种数字签名方法,包括:

获取系统参数;

获取当前用户的第一用户证书和第一私钥;其中,第一用户证书根据当前用户的第一身份标识、当前用户的第一公钥和预设主私钥生成;

根据第一用户证书、第一私钥和系统参数,生成当前用户针对目标消息的第一签名信息。

第二方面,本发明实施例提供了一种数字签名装置,包括:

系统参数获取模块,用于获取系统参数;

用户信息获取模块,用于获取当前用户的第一用户证书和第一私钥;其中,第一用户证书根据当前用户的第一身份标识、当前用户的第一公钥和预设主私钥生成;

第一签名生成模块,用于根据第一用户证书、第一私钥和系统参数,生成当前用户针对目标消息的第一签名信息。

第三方面,本发明实施例提供了一种数字签名设备,设备包括:处理器以及存储有计算机程序指令的存储器;

处理器执行计算机程序指令时实现如第一方面所述的数字签名方法。

第四方面,本发明实施例提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序指令,计算机程序指令被处理器执行时实现如第一方面所述的数字签名方法。

第五方面,本发明实施例提供了一种数字签名系统,包括:

密钥生成设备,用于生成每个用户的公钥和私钥;

证书生成设备,用于根据每个用户的身份标识、该用户的公钥和预设主私钥,生成该用户的用户证书;

数字签名设备,用于获取系统参数、当前用户的第一用户证书和第一私钥;根据第一用户证书、第一私钥和系统参数,生成当前用户针对目标消息的第一签名信息。

本发明实施例的数字签名方法、装置、设备及介质、系统,能够利用当前用户的第一用户证书、当前用户的第一私钥和系统参数,生成当前用户针对目标消息的第一签名信息,其中,第一用户证书是根据当前用户的第一身份标识、当前用户的第一公钥和预设主私钥所生成的,因此,在本发明实施例中,无需从第三方获取用户证书和用户私钥,由于用户证书被当成用户的私钥的一部分参与签名过程,所以用户证书可以公开,无需通过安全信道发送,因此,能够降低数字签名的成本。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单的介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一个实施例提供的数字签名系统的结构示意图;

图2是本发明另一个实施例提供的数字签名系统的结构示意图;

图3是本发明一个实施例提供的数字签名方法的流程示意图;

图4是本发明一个实施例提供的数字签名装置的结构示意图;

图5是本发明实施例提供的数字签名设备的硬件结构示意图。

具体实施方式

下面将详细描述本发明的各个方面的特征和示例性实施例,为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及具体实施例,对本发明进行进一步详细描述。应理解,此处所描述的具体实施例仅被配置为解释本发明,并不被配置为限定本发明。对于本领域技术人员来说,本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明更好的理解。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

为了解决现有技术问题,本发明实施例提供了一种数字签名方法、装置、设备及介质、系统。下面首先对本发明实施例所提供的数字签名系统进行介绍。

图1示出了本发明一个实施例提供的数字签名系统的结构示意图。图1所示的数字签名系统包括密钥生成设备110、证书生成设备120和数字签名设备130。其中,密钥生成设备110、证书生成设备120和数字签名设备130可以分别为服务器或者电子设备,数字签名设备130由需要进行签名的用户使用。

本发明实施例中,服务器可以是一种高性能的电子计算器,用于存储和处理数据;电子设备包括但不限于手机、平板电脑、笔记本电脑、掌上电脑、车载终端、可穿戴设备、以及计步器等。

具体地,密钥生成设备110用于确定每个用户的私钥,并根据每个用户的私钥生成该用户的公钥。证书生成设备120用于根据每个用户的身份标识、该用户的公钥和预设主私钥,生成该用户的用户证书。数字签名设备130用于获取系统参数、当前用户的第一用户证书和第一私钥;根据第一私钥、第一用户证书和系统参数,生成当前用户针对目标消息的第一签名信息。

在这些实施例中,数字签名设备130需要根据用户签名顺序信息依次进行签名,即用户签名顺序信息会对每个用户的签名位置进行排序,使每个用户根据其签名位置进行签名。

图2示出了本发明另一个实施例提供的数字签名系统的结构示意图。图2所示的数字签名系统包括密钥生成设备210、证书生成设备220、数字签名设备230、签名收集设备240和签名验证设备250。其中,密钥生成设备210、证书生成设备220、数字签名设备230、签名收集设备240和签名验证设备250可以分别为服务器或者电子设备,数字签名设备230由需要进行签名的用户使用。

本发明实施例中,服务器可以是一种高性能的电子计算器,用于存储和处理数据;电子设备包括但不限于手机、平板电脑、笔记本电脑、掌上电脑、车载终端、可穿戴设备、以及计步器等。

具体地,密钥生成设备210用于确定每个用户的私钥,并根据每个用户的私钥生成该用户的公钥。证书生成设备220用于根据每个用户的身份标识、该用户的公钥和预设主私钥,生成该用户的用户证书。数字签名设备230用于获取系统参数、当前用户的第一用户证书和第一私钥;根据第一私钥、第一用户证书和系统参数,生成当前用户针对目标消息的第一签名信息。签名收集设备240用于获取每个数字签名设备230生成的签名信息,并根据所获取的签名信息,生成目标消息的目标签名;签名验证设备250用于验证目标签名。

在这些实施例中,数字签名设备230不需要根据用户签名顺序信息依次进行签名,即多个用户可以并行地进行签名。

图3示出了本发明一个实施例提供的数字签名方法的流程示意图。

在本发明一些实施例中,图3所示的数字签名方法可以由图1所示数字签名系统的数字签名设备130执行。如图3所示,该数字签名方法可以包括:

s310、获取系统参数;

s320、获取当前用户的第一用户证书和第一私钥;其中,第一用户证书根据当前用户的第一身份标识、当前用户的第一公钥和预设主私钥生成;

s330、根据第一用户证书、第一私钥和系统参数,生成当前用户针对目标消息的第一签名信息。

在本发明实施例中,能够利用当前用户的第一用户证书、当前用户的第一私钥和系统参数,生成当前用户针对目标消息的第一签名信息,其中,第一用户证书是根据当前用户的第一身份标识、当前用户的第一公钥和预设主私钥所生成的,因此,在本发明实施例中,无需从第三方获取用户证书和用户私钥,由于用户证书被当成用户的私钥的一部分参与签名过程,所以用户证书可以公开,无需通过安全信道发送,因此,能够降低数字签名的成本。

在本发明一些实施例中,图1所示数字签名系统的还可以包括系统参数生成设备,系统参数生成设备在数字签名系统初始化时可以生成数字签名系统的预设主私钥和数字签名系统的系统参数,其中,系统参数可以表示为为公开参数,只要是数字签名系统中的数字签名设备130均可以获取。

在本发明一些实施例中,图1所示数字签名系统的密钥生成设备110和证书生成设备120,可以从系统参数生成设备获取,并根据生成每个用户的公钥、私钥和用户证书。

其中,系统参数可以包括阶为预设大素数的加法循环群、预设生成元、预设数据集和第一哈希函数,预设数据集中的数据为小于或等于预设大素数的非负整数,预设生成元为加法循环群的生成元,预设主私钥为预设数据集中的第一预设数据,第一哈希函数的第一输入值为二进制比特串,第一哈希函数的第二输入值属于加法循环群,第一哈希函数的输出值属于加法循环群。

预设大素数可以表示为,加法循环群可以表示为,预设生成元可以表示为,预设主私钥可以表示为,预设数据集可以表示为中的数据为小于或等于的非负整数,第一哈希函数可以表示为

具体地,可以由一个最小生成元生成,并且可以具有多个生成元,可以在的多个生成元中随机选择的一个生成元。可以为中的第一预设数据,即,并且,为在中随机选择的一个预设数据。的表达式可以为,其中,的第一输入值可以为二进制比特串,的第二输入值可以属于的输出值可以属于

在本发明实施例中,第一用户证书根据预设主私钥和第一输出值生成,第一输出值为第一哈希函数针对第一身份标识对应的二进制比特串和第一公钥的输出值,第一公钥根据第一私钥和预设生成元生成,第一私钥和预设主私钥属于预设数据集,所述第一公钥和所述第一输出值属于加法循环群。

在本发明一些实施例中,若预设生成元仅为加法循环群的生成元,密钥生成设备110生成用户的公钥的具体方法可以包括:

在预设数据集中获取每个用户对应的第二预设数据,作为该用户的私钥;

将预设生成元做用户对应的私钥次数的群加法运算,得到该用户的公钥。

下面,以当前用户为例,详细说明当前用户的第一公钥和第一私钥的生成方法。

当前用户可以表示为用户为用户总数。用户对应的第二预设数据可以为在中随机获取一个预设数据,即,可以将获取的作为用户的第一私钥,第一私钥可以表示为。当确定了用户之后,可以利用生成用户的第一公钥,第一公钥可以表示为,如果仅为的生成元,则的计算公式可以为。由此,可以生成用户的公私钥对,其中,由用户自己保管,可以发送给数字签名系统中的其他数字签名设备。

在本发明另一些实施例中,系统参数还可以包括阶为预设大素数的乘法循环群,若预设生成元为乘法循环群的生成元,密钥生成设备110生成用户的公钥的具体方法可以包括:

在预设数据集中获取每个用户对应的第二预设数据,作为该用户的私钥;

将预设生成元作为底数,将每个用户对应的私钥作为预设生成元的指数进行幂运算,得到该用户的公钥。

乘法循环群可以表示为,如果还为的生成元,则的计算公式可以为

在本发明实施例中,由于的生成元,因此,利用所生成的也属于

在本发明一些实施例中,证书生成设备120生成用户证书的具体方法可以包括:

将每个用户的身份标识对应的二进制比特串和该用户的公钥输入第一哈希函数,得到该用户对应的第一输出值;

根据预设主私钥和每个用户对应的第一输出值,生成该用户的用户证书。

下面,以当前用户为例,详细说明当前用户的第一用户证书的生成方法。

当前用户的第一身份标识可以为用户在初始化后获得的唯一识别标识,第一身份标识可以表示为。将对应的二进制比特串和输入后,即可以得到用户对应的第一输出值,具体地,的表达式可以为。可见,的消息摘要。

然后,可以将预设主私钥对第一输出值进行签名,得到当前用户的用户证书。

其中,用户的第一用户证书可以表示为,可以将做群加法运算或者利用进行幂运算,作为用户,其中,的计算公式可以为。可见,在本发明实施例中,的生成本质上采用了bls(boneh-lynn-shacham)短签名技术,可以用的消息摘要进行签名,以生成

在本发明一些实施例中,系统参数还可以包括预设主公钥、第二哈希函数和第三哈希函数,其中,预设主公钥根据预设主私钥和预设生成元生成,预设主私钥为预设数据集中的第一预设数据,第二哈希函数的输入值为二进制比特串,第二哈希函数的输出值属于预设数据集,第三哈希函数的输入值为二进制比特串,第三哈希函数的输出值属于加法循环群。

其中,预设主公钥可以表示为,第二哈希函数可以表示为,第三哈希函数可以表示为

具体地,的计算公式可以为,即做群加法运算或者进行幂运算得到的。的表达式可以为,其中,的输入值可以为二进制比特串,的输出值可以属于的表达式可以为,其中,的输入值可以为二进制比特串,的输出值可以属于

在这些实施例中,可选地,s330的具体方法可以包括:

获取第一身份标识和第一签名位置信息、第一公钥、第一私钥以及用户签名顺序信息;

将第一身份标识、用户签名顺序信息、第一公钥和预设主公钥拼接,得到第一拼接信息;

将第一拼接信息对应的二进制比特串输入第二哈希函数,得到第二输出值;其中,第二输出值属于预设数据集;

将第一身份标识、第一签名位置信息、第一公钥和预设主公钥拼接,得到第二拼接信息;

将第二拼接信息对应的二进制比特串输入第三哈希函数,得到第三输出值;其中,第三输出值属于加法循环群;

获取预设数据集中的第三预设数据;

根据目标消息、第一用户证书、第一私钥、预设生成元、第二输出值、第三输出值和第三预设数据,生成第一签名信息。

其中,用户签名顺序信息可以表示为,用于表示数字签名系统中的用户签名顺序,其中,用户签名顺序可以根据当前签名场景中的各个用户的用户权限生成,用户权限越高则签名位置越靠后;或者用户权限越高则签名位置越靠前。当前用户的第一签名位置信息可以表示为可以为位的二进制比特串,由的末位向首位的第位字符为1,其他位字符为0,用于表示用户在用户签名顺序中为第位。

以用户为例,的末位向首位的第1位字符为1,即的第位字符为1,其他位字符为0。

第二输出值可以表示为,具体地,的表达式可以为,其中,为第一拼接信息,的输入值为第一拼接信息对应的二进制比特串。第三输出值可以表示为,具体地,的表达式可以为,其中,为第二拼接信息,的输入值为第二拼接信息对应的二进制比特串。

在本发明一些实施例中,根据目标消息、第一用户证书、第一私钥、预设生成元、第二输出值、第三输出值和第三预设数据生成第一签名信息的具体方法可以包括:

根据第三预设数据和预设生成元,生成第一签名值;

根据目标消息、第一用户证书、第一私钥、第二输出值、第三输出值和第三预设数据,生成第二签名值;

根据第一签名值和第二签名值,生成第一签名信息。

其中,第一签名值可以表示为,第二签名值可以表示为,目标消息可以表示为。第三预设数据可以表示为可以为在中随机获取一个预设数据,即

在本发明一些实施例中,若预设生成元仅为加法循环群的生成元,根据第三预设数据和预设生成元生成第一签名值的具体方法可以包括:

将预设生成元做第三预设数据次数的群加法运算,得到第一签名值。

具体地,用户的计算公式可以为

在本发明另一些实施例中,系统参数还可以包括阶为预设大素数的乘法循环群,若预设生成元为乘法循环群的生成元,据第三预设数据和预设生成元生成第一签名值的具体方法可以包括:

将预设生成元作为底数,将第三预设数据作为预设生成元的指数进行幂运算,得到第一签名值。

在本发明一些实施例中,系统参数还可以包括第四哈希函数,第四哈希函数的输入值为二进制比特串,第四哈希函数的输出值属于加法循环群。

其中,第四哈希函数可以表示为的表达式可以为,其中,的输入值可以为二进制比特串,的输出值可以属于

在本发明一些实施例中,根据目标消息、第一用户证书、第一私钥、第二输出值、第三输出值和第三预设数据生成第二签名值的具体方法可以包括:

将目标消息对应的二进制比特串输入第四哈希函数,得到第四输出值;其中,第四输出值属于加法循环群;

将第一用户证书、第一私钥、第二输出值、第三输出值、第四输出值和第三预设数据输入预设计算函数,得到第二签名值。

其中,第四输出值可以表示为。由于的输入值均为二进制比特串,因此,需要将先转换为二进制比特串,然后将转换得到的对应的二进制比特串输入,得到

在本发明一些实施例中,对应的预设计算函数可以表示为。由此,可以利用用户的第一用户证书、第一私钥、第二输出值、第三输出值、第四输出值、第三预设数据和预设计算函数,得到用户

在本发明一些实施例中,根据第一签名值和第二签名值生成第一签名信息的具体方法可以包括:

在当前用户为首个签名用户的情况下,将第一签名值和第二签名值,作为第一签名信息。

即用户的第一签名信息

在本发明另一些实施例中,根据第一签名值和第二签名值生成第一签名信息的具体方法可以包括:

在当前用户不是首个签名用户的情况下,获取签名位置在当前用户之前的全部第一用户的第一签名值和第二签名值;

计算当前用户和全部第一用户的第一签名值总和以及第二签名值总和;

将第一签名值总和以及第二签名值总和,作为第一签名信息。

即用户的第一签名信息,其中,为签名位置在当前用户之前的第一用户的第二签名值,为签名位置在当前用户之前的第一用户的第一签名值,

当用户生成了后,即可以将的消息签名对发送给签名位置与用户后相邻的用户所使用的数字签名设备,即签名位置在用户下一位的用户所使用的数字签名设备,使该数字签名设备基于用户生成该用户对应的签名信息。

在本发明一些实施例中,除了第一个签名用户以外,其他的签名用户在进行签名之前,需要首先验证签名位置与该签名用户前相邻的签名用户所发送的第二签名信息,即验证签名位置在该签名用户的前一位的签名用户所发送的第二签名信息,如果第二签名信息通过验证,才能继续进行签名,如果第二签名信息未通过验证,则停止签名。

因此,在本发明一些实施例中,在s330之前,该数字签名方法还可以包括:

在当前用户不是首个签名用户的情况下,接收第二用户发送的第二签名信息;第二用户为签名位置与当前用户前相邻的第一用户,第一用户为签名位置在当前用户之前的用户;

此时,s330的具体方法可以包括:

在第二签名信息通过验证的情况下,根据第一用户证书、第一私钥和系统参数,生成当前用户针对目标消息的第一签名信息。

在本发明一些实施例中,接收第二签名信息的具体方法可以为,接收第二用户发送的的消息签名对,从第二用户发送的的消息签名对中,获取第二签名信息

在本发明实施例中,可选地,为了对第二签名信息进行验证,在s330之前,该数字签名方法还可以包括:

获取每个第一用户的第二公钥、第二身份标识和第二签名位置信息;其中,第二公钥属于加法循环群;

针对每个第一用户,将第二身份标识对应的二进制比特串和第二公钥输入第一哈希函数,得到每个第一用户对应的第五输出值;其中,第五输出值属于所述加法循环群;

针对每个第一用户,将第二身份标识、用户签名顺序信息、第二公钥和预设主公钥拼接,得到每个第一用户对应的第三拼接信息;

将每个第三拼接信息对应的二进制比特串输入第二哈希函数,得到每个第一用户对应的第六输出值;其中,第六输出值属于预设数据集;

针对每个第一用户,将第二身份标识、该第一用户的第二签名位置信息、第二公钥和预设主公钥拼接,到每个第一用户对应的第四拼接信息;

将每个第四拼接信息对应的二进制比特串输入第三哈希函数,得到每个第一用户对应的第七输出值;其中,第七输出值属于加法循环群;

将目标消息对应的二进制比特串输入第四哈希函数,得到第八输出值;其中,第八输出值属于加法循环群;

根据第五输出值、第六输出值、第七输出值和第八输出值,确定第二签名信息是否通过验证。

具体地,可以获取每个第一用户的第二公钥、第二身份标识和第二签名位置信息

针对每一个第一用户计算:

从而,得到第五输出值,第六输出值和第七输出值

然后,针对目标消息,将输入,得到第八输出值

需要说明的是,第五输出值、第六输出值、第七输出值和第八输出值的计算方法与上述的第一输出值、第二输入值、第三输出值和第四输出值的方法相似,在此不做赘述。

在本发明一些实施例中,系统参数还可以包括阶为预设大素数的乘法循环群和双线性映射函数,双线性映射函数的输入值属于加法循环群,双线性映射函数的输出值属于乘法循环群。

其中,乘法循环群可以表示为可以为由一个最小生成元生成的阶为的乘法循环群。双线性映射函数可以表示为的表达式可以为,即的两个输入值可以均属于的输出值可以属于

在这些实施例中,可选地,根据第五输出值、第六输出值、第七输出值和第八输出值确定第二签名信息是否通过验证的具体方法可以包括:

获取第二签名信息中的第一签名值和第二签名信息中的第二签名值;

将第二签名信息中的第二签名值以及预设生成元输入双线性映射函数,得到第九输出值;其中,第二签名值属于加法循环群,第九输出值属于乘法循环群;

针对每个第一用户,计算第六输出值和预设生成元的乘积,得到每个第一用户对应的第一计算值;

将全部第一用户对应的第一计算值总和与第二签名信息中的第一签名值相加,得到第二计算值;其中,第二计算值属于加法循环群;

将第八输出值和第二计算值输入双线性映射函数,得到第十输出值;其中,第十输出值属于乘法循环群;

将全部第一用户对应的第五输出值总和与预设主公钥输入双线性映射函数,得到第十一输出值;其中,第五输出值总和属于加法循环群,第十一输出值属于乘法循环群;

将每个第一用户对应的第七输出值与该第一用户对应的第二公钥输入双线性映射函数,得到该第一用户对应的第十二输出值;其中,第十二输出值属于乘法循环群;

根据第九输出值、第十输出值、第十一输出值和每个第一用户对应的第十二输出值,确定第二签名信息是否通过验证。

具体地,中的第二签名值的表达式可以为中的第一签名值的表达式可以为。第九输出值的表达式可以为,第十输出值的表达式可以为,第十一输出值的表达式可以为,第十二输出值的表达式可以为

在本发明一些实施例中,根据第九输出值、第十输出值、第十一输出值和每个第一用户对应的第十二输出值确定第二签名信息是否通过验证的具体方法可以包括:

将第九输出值、第十输出值、第十一输出值和每个第一用户对应的第十二输出值输入预设校验公式,判断预设校验公式是否成立;

若预设校验公式成立,则确定第二签名信息通过验证;

若预设校验公式不成立,则确定第二签名信息未通过验证。

其中,预设校验公式可以为

将第九输出值、第十输出值、第十一输出值和每个第一用户对应的第十二输出值输入预设校验公式后,若预设校验公式成立,则确定第二签名信息通过验证,若预设校验公式不成立,则确定第二签名信息未通过验证。

该预设校验公式是基于双线性映射的思想,利用签名用户的公钥和身份标识及系统参数验证签名信息是否有效,一旦用户签名顺序不正确,则预设校验公式不会成立,由此可以保证签名用户按照用户签名顺序进行签名。

在本发明另一些实施例中,图3所示的数字签名方法可以由图2所示数字签名系统的数字签名设备230执行。

在本发明一些实施例中,s330的具体方法可以包括:

将目标消息对应的二进制比特串输入第二哈希函数,得到第十三输出值;其中,第十三输出值属于预设数据集;

根据第十三输出值、第一私钥和第一用户证书,生成第一签名信息。

在本发明一些实施例中,图2所示数字签名系统的也可以还包括系统参数生成设备,系统参数生成设备在数字签名系统初始化时可以生成的系统参数,系统参数可以表示为为公开参数,只要是数字签名系统中的数字签名设备230均可以获取。

在本发明一些实施例中,图2所示数字签名系统的密钥生成设备210和证书生成设备220,可以从系统参数生成设备获取,并根据生成每个用户的公钥、私钥和用户证书。

需要说明的是,密钥生成设备210和证书生成设备220生成每个用户的公钥、私钥和用户证书的方法与图1所示实施例相同,在此不做赘述。

但是,图2所示数字签名系统的密钥生成设备210还会在中随机获取第五预设数据,作为签名验证设备250的第三私钥,即,并将的乘积,作为签名验证设备250的第三公钥的计算公式为

其中,第十三输出值的表达式为

在本发明一些实施例中,根据第十三输出值、第一私钥和第一用户证书生成第一签名信息的具体方法可以包括:

将第十三输出值做第一私钥次数的群加法运算或根据第十三输出值和第一私钥进行幂运算,得到运算结果;

将运算结果与第一用户证书相加,得到第一签名信息。

具体地,第一签名信息的计算公式可以为

在本发明一些实施例中,在s330之后,该数字签名方法还可以包括:

将第一签名信息发送给目标设备,以使目标设备对第一签名信息进行验证,并在第一签名信息验证通过的情况下,根据第一签名信息生成目标消息的目标签名。

其中,目标设备可以为图2所示数字签名系统的签名收集设备240。

当用户生成了后,即可以将的消息签名对发送给目标设备,使该目标设备基于用户生成目标消息的目标签名。

继续参见图2,签名收集设备240在收集到全部的数字签名设备230所发送的消息签名对之后,可以获取每个数字签名设备230对应的签名信息,并对每个签名信息进行验证,然后利用验证通过的签名信息,生成目标消息的目标签名。

下面,以当前用户为例,详细说明签名收集设备240对第一签名信息进行验证的方法。

签名收集设备240可以获取用户,并计算用户对应的,然后验证,若等式成立,则说明通过验证,若等式不成立,则说明未通过验证。

然后,在全部用户的签名信息均通过验证的情况下,计算目标签名

签名收集设备240生成目标签名后,将目标消息签名对发送给签名验证设备250,签名验证设备250可以利用每个用户的公钥、每个用户的身份标识和,验证

具体地,可以计算每个用户对应的第一输出值,然后验证等式,若等式成立,则说明通过验证,若等式不成立,则说明未通过验证。

图4示出了本发明一个实施例提供的数字签名装置的结构示意图。

在本发明一些实施例中,图4所示的数字签名装置可以设置于图1所示数字签名系统的数字签名设备130内。如图4所示,该数字签名装置可以包括:

系统参数获取模块410,用于获取系统参数;

用户信息获取模块420,用于获取当前用户的第一用户证书和第一私钥;其中,第一用户证书根据当前用户的第一身份标识、当前用户的第一公钥和预设主私钥生成;

第一签名生成模块430,用于根据第一用户证书、第一私钥和系统参数,生成当前用户针对目标消息的第一签名信息。

在本发明实施例中,能够利用当前用户的第一用户证书、当前用户的第一私钥和系统参数,生成当前用户针对目标消息的第一签名信息,其中,第一用户证书是根据当前用户的第一身份标识、当前用户的第一公钥和预设主私钥所生成的,因此,在本发明实施例中,无需从第三方获取用户证书和用户私钥,由于用户证书被当成用户的私钥的一部分参与签名过程,所以用户证书可以公开,无需通过安全信道发送,因此,能够降低数字签名的成本。

在本发明一些实施例中,第一用户证书根据预设主私钥和第一输出值生成,第一输出值为第一哈希函数针对第一身份标识对应的二进制比特串和第一公钥的输出值,第一公钥根据第一私钥和预设生成元生成,第一私钥和预设主私钥属于预设数据集,预设数据集中的数据为小于或等于预设大素数的非负整数,第一公钥和第一输出值属于阶为预设大素数的加法循环群,预设生成元为加法循环群的生成元。

在本发明一些实施例中,系统参数包括预设生成元、预设主公钥、第二哈希函数和第三哈希函数,其中,预设主公钥根据预设主私钥和预设生成元生成。

在本发明一些实施例中,第一签名生成模块430可以具体用于:

获取第一身份标识和第一签名位置信息、第一公钥以及用户签名顺序信息;

将第一身份标识、用户签名顺序信息、第一公钥和预设主公钥拼接,得到第一拼接信息;

将第一拼接信息对应的二进制比特串输入第二哈希函数,得到第二输出值;其中,第二输出值属于预设数据集;

将第一身份标识、第一签名位置信息、第一公钥和预设主公钥拼接,得到第二拼接信息;

将第二拼接信息对应的二进制比特串输入第三哈希函数,得到第三输出值;其中,第三输出值属于加法循环群;

获取预设数据集中的第三预设数据;

根据目标消息、第一用户证书、第一私钥、预设生成元、第二输出值、第三输出值和第三预设数据,生成第一签名信息。

在本发明一些实施例中,第一签名生成模块430可以进一步用于:

根据第三预设数据和所述预设生成元,生成第一签名值;

根据目标消息、第一用户证书、第一私钥、第二输出值、第三输出值和第三预设数据,生成第二签名值;

根据第一签名值和第二签名值,生成第一签名信息。

在本发明一些实施例中,系统参数还可以包括第四哈希函数。

在本发明一些实施例中,第一签名生成模块430还可以进一步用于:

将目标消息对应的二进制比特串输入第四哈希函数,得到第四输出值;其中,第四输出值属于加法循环群;

将第一用户证书、第一私钥、第二输出值、第三输出值、第四输出值和第三预设数据输入预设计算函数,得到第二签名值。

在本发明一些实施例中,第一签名生成模块430可以进一步用于:

在当前用户为首个签名用户的情况下,将第一签名值和第二签名值,作为第一签名信息。

在本发明一些实施例中,第一签名生成模块430还可以进一步用于:

在当前用户不是首个签名用户的情况下,获取签名位置在当前用户之前的全部第一用户的第一签名值和第二签名值;

计算当前用户和全部第一用户的第一签名值总和以及第二签名值总和;

将第一签名值总和以及第二签名值总和,作为第一签名信息。

在本发明一些实施例中,该数字签名装置还可以包括:

第一签名获取模块,用于在当前用户不是首个签名用户的情况下,接收第二用户发送的第二签名信息;第二用户为签名位置与当前用户前相邻的第一用户,第一用户为签名位置在当前用户之前的用户;

在这些实施例中,可选地,第一签名生成模块430还可以具体用于:

在第二签名信息通过验证的情况下,根据第一用户证书、第一私钥和系统参数,生成当前用户针对目标消息的第一签名信息。

在本发明一些实施例中,系统参数还可以包括第一哈希函数。

在本发明一些实施例中,该数字签名装置还可以包括:

用户信息获取模块,用于获取每个第一用户的第二公钥、第二身份标识和第二签名位置信息;其中,第二公钥属于加法循环群;

第一签名验证模块,用于:

针对每个第一用户,将第二身份标识对应的二进制比特串和第二公钥输入第一哈希函数,得到每个第一用户对应的第五输出值;其中,第五输出值属于加法循环群;

针对每个第一用户,将第二身份标识、用户签名顺序信息、第二公钥和预设主公钥拼接,得到每个第一用户对应的第三拼接信息;

将每个第三拼接信息对应的二进制比特串输入第二哈希函数,得到每个第一用户对应的第六输出值;其中,第六输出值属于预设数据集;

针对每个第一用户,将第二身份标识、该第一用户的第二签名位置信息、第二公钥和预设主公钥拼接,到每个第一用户对应的第四拼接信息;

将每个第四拼接信息对应的二进制比特串输入第三哈希函数,得到每个第一用户对应的第七输出值;其中,第七输出值属于加法循环群;

将目标消息对应的二进制比特串输入第四哈希函数,得到第八输出值;其中,第八输出值属于加法循环群;

根据第五输出值、第六输出值、第七输出值和第八输出值,确定第二签名信息是否通过验证。

在本发明一些实施例中,系统参数还可以包括阶为预设大素数的乘法循环群和双线性映射函数。

在本发明一些实施例中,第一签名验证模块可以具体用于:

获取第二签名信息中的第一签名值和第二签名信息中的第二签名值;

将第二签名信息中的第二签名值以及预设生成元输入双线性映射函数,得到第九输出值;其中,第二签名值属于加法循环群,第九输出值属于乘法循环群;

针对每个第一用户,计算第六输出值和预设生成元的乘积,得到每个第一用户对应的第一计算值;

将全部第一用户对应的第一计算值总和与第二签名信息中的第一签名值相加,得到第二计算值;其中,第二计算值属于加法循环群;

将第八输出值和第二计算值输入双线性映射函数,得到第十输出值;其中,第十输出值属于乘法循环群;

将全部第一用户对应的第五输出值总和与预设主公钥输入双线性映射函数,得到第十一输出值;其中,第五输出值总和属于加法循环群,第十一输出值属于乘法循环群;

将每个第一用户对应的第七输出值与该第一用户对应的第二公钥输入双线性映射函数,得到该第一用户对应的第十二输出值;其中,第十二输出值属于乘法循环群;

根据第九输出值、第十输出值、第十一输出值和每个第一用户对应的第十二输出值,确定第二签名信息是否通过验证。

在本发明一些实施例中,第一签名验证模块可以进一步用于:

将第九输出值、第十输出值、第十一输出值和每个第一用户对应的第十二输出值输入预设校验公式,判断预设校验公式是否成立;

若预设校验公式成立,则确定第二签名信息通过验证;

若预设校验公式不成立,则确定第二签名信息未通过验证。

在本发明另一些实施例中,图4所示的数字签名装置可以设置于图2所示数字签名系统的数字签名设备230内。

在本发明一些实施例中,系统参数可以包括第二哈希函数,第二哈希函数的输出值属于预设数据集。

在这些实施例中,可选地,第一签名生成模块430可以具体用于:

将目标消息对应的二进制比特串输入第二哈希函数,得到第十三输出值;其中,第十三输出值属于预设数据集;

根据第十三输出值、第一私钥和第一用户证书,生成第一签名信息。

在本发明一些实施例中,该数字签名装置还可以包括:

第一签名发送模块,用于将第一签名信息发送给目标设备,以使目标设备对第一签名信息进行验证,并在第一签名信息验证通过的情况下,根据第一签名信息生成目标消息的目标签名。

本发明实施例提供的数字签名装置能够实现图3所示的方法实施例中的各个过程和效果,为避免重复,这里不再赘述。

图5示出了本发明实施例提供的数字签名设备的硬件结构示意图。

如图5所示,数字签名设备可以包括处理器501以及存储有计算机程序指令的存储器502。

具体地,上述处理器501可以包括中央处理器(cpu),或者特定集成电路(applicationspecificintegratedcircuit,asic),或者可以被配置成实施本发明实施例的一个或多个集成电路。

存储器502可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器502可包括硬盘驱动器(harddiskdrive,hdd)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(universalserialbus,usb)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器502可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器502可在综合网关容灾设备的内部或外部。在特定实施例中,存储器502是非易失性固态存储器。在特定实施例中,存储器502包括只读存储器(rom)。在合适的情况下,该rom可以是掩模编程的rom、可编程rom(prom)、可擦除prom(eprom)、电可擦除prom(eeprom)、电可改写rom(earom)或闪存或者两个或更多个以上这些的组合。

处理器501通过读取并执行存储器502中存储的计算机程序指令,以实现上述实施例中的任意一种数字签名方法。

在一个示例中,数字签名设备还可包括通信接口503和总线510。其中,如图5所示,处理器501、存储器502、通信接口503通过总线510连接并完成相互间的通信。

通信接口503,主要用于实现本发明实施例中各模块、装置、单元和/或设备之间的通信。

总线510包括硬件、软件或两者,将数字签名设备的部件彼此耦接在一起。举例来说而非限制,总线可包括加速图形端口(agp)或其他图形总线、增强工业标准架构(eisa)总线、前端总线(fsb)、超传输(ht)互连、工业标准架构(isa)总线、无限带宽互连、低引脚数(lpc)总线、存储器总线、微信道架构(mca)总线、外围组件互连(pci)总线、pci-e5press(pci-5)总线、串行高级技术附件(sata)总线、视频电子标准协会局部(vlb)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线510可包括一个或多个总线。尽管本发明实施例描述和示出了特定的总线,但本发明考虑任何合适的总线或互连。

该数字签名设备可以执行本发明实施例中的数字签名方法,从而实现结合图3和图4描述的数字签名方法和装置。

另外,结合上述实施例中的数字签名方法,本发明实施例可提供一种计算机可读存储介质来实现。该计算机可读存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种数字签名方法。

需要明确的是,本发明并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本发明的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本发明的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。

以上所述的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(asic)、适当的固件、插件、功能卡等等。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、rom、闪存、可擦除rom(erom)、软盘、cd-rom、光盘、硬盘、光纤介质、射频(rf)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。

还需要说明的是,本发明中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本发明不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。

以上所述,仅为本发明的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。

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