一种群组数字签名、验证方法及其设备和装置与流程

文档序号:18751646发布日期:2019-09-24 21:11阅读:171来源:国知局
一种群组数字签名、验证方法及其设备和装置与流程

本发明涉及信息安全技术领域,特别涉及数字签名及其验证技术。



背景技术:

随着信息技术的发展,大量敏感信息通过网络进行传输,出于商业机密和保护用户隐私的目的,诸如电子投票、电子商务、匿名通信等网络安全应用,需要保护用户的身份信息。随着网络技术和电子商务的发展,许多具有隐私保护需求的电子商务活动,如电子彩票、电子现金和在线游戏等,成为新的研究领域。越来越多的信息安全和匿名业务的需求,使得匿名数字签名技术的研究和应用获得了快速发展。

传统的数字签名技术在进行验签时需获得签名者的身份信息,如商用密码算法sm2,不具备匿名性,因此无法实现对签名者隐私的保护。数字签名和匿名技术的结合形成了匿名数字签名技术。匿名数字签名技术包含两种:一种是可追踪签名者身份的匿名数字签名技术,其中,签名者身份的匿名性是可控制的,例如,存在一个可信权威中心可以在适当的时候揭示签名者的身份;另一种是无条件匿名数字签名技术,其中,签名者身份的匿名性是无条件安全的,没有任何方法能够揭示签名者的身份。

群组数字签名是一种能够追踪签名者身份的匿名数字签名技术。该技术中,群组中的任一成员可以使用密钥代表群组匿名地进行签名。群组数字签名主要用于保护签名者的匿名性,能够很好地隐藏群组的内部结构,可适用于政府管理、企业管理、电子商务以及军事等领域,比如电子现金、电子投标、车辆安全通信等。

群组数字签名技术中,在群组密钥生成之后,群组成员如何进行签名和验证,目前还没有行之有效的解决方案。



技术实现要素:

本申请的目的就是为了解决上述问题,提供一种群组数字签名、验证方法及其设备和装置。

第一方面,本申请的一个实施例提供一种群组数字签名方法,包括:

签名设备从有限域zp中选择第一随机数r',并分别将发布设备为所述签名设备生成的凭证密钥中的第一参数a、第二参数b、第三参数c和第四参数d与所述第一随机数r'的乘积,作为第一签名参数a'、第二签名参数b'、第三签名参数c'和第四签名参数d';根据连接基参数bsn,按照第一约束关系确定第五签名参数j,并根据所述第五签名参数j和所述签名设备的私钥f,按照第二约束关系确定第六签名参数k;其中,所述连接基参数bsn用于标识与匿名签名消息对应的签名设备。

所述签名设备根据所述第五签名参数j、所述第六签名参数k、所述连接基参数bsn、待签名消息m和第二随机数nv,按照第三约束关系确定第一中间参数e1;根据所述第一中间参数e1、所述第五签名参数j、第三随机数a和所述签名设备所属的群组对应的质数q,按照第四约束关系确定第七签名参数c1;其中,所述第二随机数nv为从设定长度的二进制随机数集合中选取的,所述第三随机数a为从所述有限域zp中选取的,所述质数q小于或等于所述签名设备所属的群组中的群组成员的数目。

所述签名设备根据所述第七签名参数c1、所述私钥f、所述第三随机数a和所述质数q,按照第五约束关系确定第八签名参数s1。

所述签名设备使用所述第一签名参数a'、所述第二签名参数b'、所述第三签名参数c'、所述第四签名参数d'、所述第五签名参数j、所述第六签名参数k、所述第七签名参数c1和所述第八签名参数s1对所述待签名消息m进行签名,得到匿名签名消息m′,并发送所述匿名签名消息m′。

第二方面,本申请的一个实施例提供一种签名设备,设备包括:

第一处理模块,用于从有限域zp中选择第一随机数r',并分别将发布设备为所述签名设备生成的凭证密钥中的第一参数a、第二参数b、第三参数c和第四参数d与所述第一随机数r'的乘积,作为第一签名参数a'、第二签名参数b'、第三签名参数c'和第四签名参数d';根据连接基参数bsn,按照第一约束关系确定第五签名参数j,并根据所述第五签名参数j和所述签名设备的私钥f,按照第二约束关系确定第六签名参数k;其中,所述连接基参数bsn用于标识与匿名签名消息对应的签名设备;

第二处理模块,用于根据所述第五签名参数j、所述第六签名参数k、所述连接基参数bsn、待签名消息m和第二随机数nv,按照第三约束关系确定第一中间参数e1;根据所述第一中间参数e1、所述第五签名参数j、第三随机数a和所述签名设备所属的群组对应的质数q,按照第四约束关系确定第七签名参数c1;其中,所述第二随机数nv为从设定长度的二进制随机数集合中选取的,所述第三随机数a为从所述有限域zp中选取的,所述质数q小于或等于所述签名设备所属的群组中的群组成员的数目;

第三处理模块,用于根据所述第七签名参数c1、所述私钥f、所述第三随机数a和所述质数q,按照第五约束关系确定第八签名参数s1;

第四处理模块,用于使用所述第一签名参数a'、所述第二签名参数b'、所述第三签名参数c'、所述第四签名参数d'、所述第五签名参数j、所述第六签名参数k、所述第七签名参数c1和所述第八签名参数s1对所述待签名消息m进行签名,得到匿名签名消息m′。

发送模块,用于发送匿名签名消息m′。

综上所述,本申请实施例提供的第一方面和第二方面,用于生成群组成员基于发布设备颁发的凭证密钥,并对未签名消息进行匿名签名得到匿名签名消息,使得群组签名具有匿名性。

第三方面,本申请的一个实施例提供一种群组数字签名的验证方法,包括:

验证设备接收到签名设备发送的匿名签名消息m';

所述验证设备验证所述匿名签名消息m'中的第七签名参数c1或第八签名参数s1是否满足第一约束条件;

若不满足,则所述验证设备确定所述匿名签名消息m'无效;若满足,则所述验证设备验证所述匿名签名消息中的第五签名参数j是否满足所述第一约束关系;

若满足,则所述验证设备根据所述匿名签名消息m'中的第五签名参数j和第六签名参数k,确定所述签名设备的私钥f',并计算所述私钥f'与所述第五签名参数j的乘积,并验证所述签名设备的私钥f'是否在所述验证设备的黑名单中;

若所述签名设备的私钥f'在所述验证设备的黑名单中,且所述乘积与所述第六签名参数k相等,则所述验证设备确定所述匿名签名消息m'无效;否则,所述验证设备根据所述匿名签名消息m'中的第一签名参数a'、所述签名设备所属的群组的公钥y,按照映射函数确定第一函数值根据所述匿名签名消息m'中的第二签名参数b'和第二随机生成元p2,按照所述映射函数确定第二函数值根据所述匿名签名消息m'中的第三签名参数c'和所述第二随机生成元p2,按照所述映射函数确定第三函数值根据所述匿名签名消息m'中的第一签名参数a'、第四签名参数d'和所述签名设备所属的群组的公钥x,按照所述映射函数确定第四函数值其中,所述第二随机生成元p2为满足所述映射函数的双线性群对中的第二双线性群中的随机生成元;

若所述第一函数值不等于所述第二函数值并且所述第三函数值不等于所述第四函数值则所述验证设备确定所述匿名签名消息m'无效;否则,所述验证设备根据所述匿名签名消息m'中的第七签名参数c1、第八签名参数s1和所述签名设备所属的群组对应的质数q,按照第二约束条件确定第一验证参量t1;

若所述第一验证参量t1等于0,则所述验证设备确定所述匿名签名消息m'无效;若所述第一验证参量t1不等于0,所述验证设备确定所述匿名签名消息m'中的第七签名参数c1对应的验证参量c2;

若所述第七签名参数对应的验证参量c2与所述第七签名参数c1不等,则所述验证设备确定所述匿名签名消息m'无效;否则,所述验证设备确定所述匿名签名消息m'有效。

第四方面,本申请的一个实施例提供一种验证设备,设备包括:

接收模块,用于接收到签名设备发送的匿名签名消息m';

验证模块,用于验证所述匿名签名消息m'中的第七签名参数c1或第八签名参数s1是否满足第一约束条件;

若不满足,则确定所述匿名签名消息m'无效;若满足,则验证所述匿名签名消息中的第五签名参数j是否满足所述第一约束关系;

若满足,则根据所述匿名签名消息m'中的第五签名参数j和第六签名参数k,确定所述签名设备的私钥f',并计算所述私钥f'与所述第五签名参数j的乘积,并验证所述签名设备的私钥f'是否在所述验证设备的黑名单中;

若所述签名设备的私钥f'在所述验证设备的黑名单中,且所述乘积与所述第六签名参数k相等,则确定所述匿名签名消息m'无效;否则,所述验证设备根据所述匿名签名消息m'中的第一签名参数a'、所述签名设备所属的群组的公钥y,按照映射函数确定第一函数值根据所述匿名签名消息m'中的第二签名参数b'和第二随机生成元p2,按照所述映射函数确定第二函数值根据所述匿名签名消息m'中的第三签名参数c'和所述第二随机生成元p2,按照所述映射函数确定第三函数值根据所述匿名签名消息m'中的第一签名参数a'、第四签名参数d'和所述签名设备所属的群组的公钥x,按照所述映射函数确定第四函数值其中,所述第二随机生成元p2为满足所述映射函数的双线性群对中的第二双线性群中的随机生成元;

若所述第一函数值不等于所述第二函数值并且所述第三函数值不等于所述第四函数值则确定所述匿名签名消息m'无效;否则,根据所述匿名签名消息m'中的第七签名参数c1、第八签名参数s1和所述签名设备所属的群组对应的质数q,按照第二约束条件确定第一验证参量t1;

若所述第一验证参量t1等于0,则确定所述匿名签名消息m'无效;若所述第一验证参量t1不等于0,确定所述匿名签名消息m'中的第七签名参数c1对应的验证参量c2;

若所述第七签名参数对应的验证参量c2与所述第七签名参数c1不等,则确定所述匿名签名消息m'无效;否则,确定所述匿名签名消息m'有效。

综上所述,本申请实施例提供的第三方面和第四方面中,接收到匿名签名消息的验证设备,对该匿名签名消息进行有效性验证,在确定该匿名签名消息有效后,读取未签名消息,以获知签名设备所发送的数据。

第五方面,本申请的一个实施例提供一种安全装置,装置包括:

第一功能模块,用于根据第五签名参数j和签名设备的私钥f,按照第二约束关系确定第六签名参数k;

第二功能模块,用于从有限域zp中选取第三随机数a;

第三功能模块,用于根据第一中间参数e1、所述第五签名参数j、所述第三随机数a和所述签名设备所属的群组对应的质数q,按照第四约束关系确定第七签名参数c1;并根据所述第七签名参数c1、所述私钥f、所述第三随机数a和所述质数q,按照第五约束关系确定第八签名参数s1;

发送模块,用于发送所述第七签名参数c1和所述第八签名参数s1。

附图说明

图1为本申请实施例提供的一种群组数字签名方法的流程示意图;

图2为本申请实施例提供的一种群组数字签名的验证方法的流程示意图;

图3为本申请实施例1中的架构示意图;

图4为本申请实施例1中的群组签名、验证过程框架示意图;

图5为本申请实施例提供的一种签名设备的示意图;

图6为本申请实施例提供的一种验证设备的示意图;

图7为本申请实施例提供的一种安全装置的示意图。

具体实施方式

在使用群组公钥的匿名签名机制中,签名设备是群组中的一个群组成员。该群组只有一个群组公钥。每个群组成员都有一个唯一的群组成员签名密钥,它由群组成员的私钥和一个相应的成员证书组成。签名过程中,签名设备使用群组成员签名密钥对一个给定的消息创建群签名。在验证过程中,验证设备使用群组公钥来检查该签名是否是用群组成员的签名密钥签署的群签名,并且不能透露是用哪一个群组签名密钥创建的签名。如果验证设备验证签名是使用对应于该群组公钥的群组成员签名密钥创建的,则验证通过;否则,验证不通过。

使用群组公钥的匿名数字签名机制也被称为群签名机制(groupsignaturemechanism)。这种类型的机制涉及群组成员以及群组成员发布设备(groupmembershipissuer)等实体。如果需要追溯签名设备的身份,则群组成员打开设备(groupmembershipopener)对于群签名机制是必需的。如果需要判断两个签名是否为同一签名设备所签,则群组签名连接设备(groupsignaturelinker)对于群签名机制是必需的。另外,在需要时,群签名机制中还可以撤销(revocation)群组成员的私钥或群组成员的证书。

相应的,在不同的群签名机制中,实现机制的群签名系统中的实体构成也可以不同。但群签名系统通常至少包括如下实体:

群组成员设备:构成群组的群组成员;

签名设备:是生成数字签名的任一群组成员;签名设备拥有可区分标识符和群组成员签名密钥,签名密钥由群组私钥和成员证书组成;

验证设备:是验证数字签名的实体;

群组成员发布设备:是给签名设备发布群组成员证书的实体。

根据群签名机制的不同,在群签名系统中,如下实体是可选的:

群组成员打开设备:是可以识别签名设备的签名的实体;

群组签名连接设备:是能够连接同一个签名设备生成的两个签名的实体。

群组成员和群组成员发布设备都参与群组成员数字签名的密钥的生成过程。在该过程完成后,群组成员将拥有群组成员签名密钥;该群组成员发布设备将会知道成员证书和成员的可区分标识符,成员证书和成员的可区分标识符是相关的。该区分标识符的格式取决于群签名机制,并且区分标识符可以是也可以不是群组成员发布过程的输入。如果支持打开,则需要在签名时嵌入可区分标识符。

另外,群组成员发布设备应单独生成群组成员签名密钥,并把它发给群组成员。在这种情况下,群组成员的私钥和成员证书的归属是不公开的,并且成员和发布设备都将拥有签名密钥。

群组数字签名技术中,一个群组中可包括一个可信的群组管理员以及多个普通成员。群组内的所有成员拥有自己的私钥,并可共享群组的公钥等公共参数。群组管理员还可以拥有群组成员打开方密钥(α,β)以及群组成员列表,该列表中包括群组成员的身份信息等。群组管理员可基于打开方密钥(α,β)以及群组成员列表确定匿名签名的签名方身份。此时,群组管理员充当了群组成员打开设备的角色。

群组数字签名技术包括群组数字签名的密钥生成、数字签名产生和验证等过程。群组数字签名的密钥生成进一步包括密钥建立过程和群组成员的发布过程。本申请所关注的数字签名产生和验证方法是基于群组成员在群组成员发布过程中所获得的密钥(群组成员的发布过程由本申请申请人于同日申请的另一发明《一种群组数字签名的群组成员发布方法和设备》进行保护)来产生匿名签名并进行验证。本申请所产生的匿名签名,也可以由群组数字签名控制方法中的打开或连接方法(群组数字签名控制方法由本申请申请人于同日申请的另一发明《一种群组数字签名的控制方法和设备》进行保护)对匿名性进行控制。

其中,群组数字签名的密钥生成所包括的密钥建立过程和群组成员的发布过程如下:

一、密钥建立过程,包括:

1、群组密钥的建立过程。该过程由发布设备执行,具体如下:

首先,发布设备确定一个对称双线性群对(g1,g2),其中,g1,g2的阶数都为p,且g1和g2满足映射函数g1×g2→gt。gt为g1和g2中元素采用双线性运算得到的阶为p的群组。

然后,发布设备从g1中选择一个随机生成元p1,并从g2中选择一个随机生成元p2。

其中,发布设备确定三个hash函数:h:{0,1}*→g1,h1:{0,1}*→zp,h2:{0,1}*→zp,其中h1(第一哈希函数)和h2(第二哈希函数)符合sm2签名算法中对散列函数的选取。发布设备从有限域(zp)中,选择随机数,即x,y,并计算x=[x]p2和y=[y]p2。

最后,发布设备输出如下参数:

-公共参数:g1,g2,gt,p1,p2,p,h,h1,h2。

-群公钥:pk,pk包括两个分量,即x和y。

-群组密钥:x,y,每个群组成员的群组密钥包括x,y两个分量。

其中,群组成员可以从发布设备获取上述参数。

2、打开方的密钥建立过程。该过程由打开方执行,具体如下:

打开方从有限域(zp)中,选择随机数,即α,β,并计算w=[α]p1+[β]p1,w=uα,w=vβ

其中,打开方的密钥包括如下参数:

-群组成员打开方公钥:opk=(q,v,w)。

-群组成员打开方密钥:α,β。

二、所述群组成员的发布过程。该过程由群组成员和发布设备共同完成,以产生群组数字签名的密钥。

在群组数字签名的密钥生成过程之后,本申请提供一种匿名数字签名产生和验证方法来产生匿名签名并能够对该签名进行验证。

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

下面结合说明书附图对本申请实施例作进一步详细描述。应当理解,此处所描述的实施例仅用于说明和解释本申请,并不用于限定本申请。

如图1所示的实施例中,提供了一种群组数字签名方法,所述方法包括:

s11、签名设备从有限域zp中选择第一随机数r',并分别将发布设备为所述签名设备生成的凭证密钥中的第一参数a、第二参数b、第三参数c和第四参数d与所述第一随机数r'的乘积,作为第一签名参数a'、第二签名参数b'、第三签名参数c'和第四签名参数d';根据连接基参数bsn,按照第一约束关系确定第五签名参数j,并根据所述第五签名参数j和所述签名设备的私钥f,按照第二约束关系确定第六签名参数k;其中,所述连接基参数bsn用于标识与匿名签名消息对应的签名设备。

一种可能的实现方式中,所述第一约束关系为:j=h(bsn),其中,j为所述第五签名参数,h()表示哈希函数,bsn为所述连接基参数。

一种可能的实现方式中,所述第二约束关系为:k=[f]j,其中,k为所述第六签名参数,f为所述签名设备的私钥,[f]j表示f与j进行点乘运算。

s12、所述签名设备根据所述第五签名参数j、所述第六签名参数k、所述连接基参数bsn、待签名消息m和第二随机数nv,按照第三约束关系确定第一中间参数e1;根据所述第一中间参数e1、所述第五签名参数j、第三随机数a和所述签名设备所属的群组对应的质数q,按照第四约束关系确定第七签名参数c1。

其中,所述第二随机数nv为从设定长度的二进制随机数集合中选取的,具体的,为发布设备从{0,1}t中选取的一个随机数,{0,1}t表示长度为t的二进制数的集合,该集合中的每个二进制数的每一位的取值为0或1。所述第三随机数a为从所述有限域zp中选取的,所述质数q小于或等于所述签名设备所属的群组中的群组成员的数目。群组对应的质数为基于群组大小(即该群组中包含的群组成员的数目)确定的任意一个质数,该质数小于或等于群组大小。

一种可能的实现方式中,所述第三约束关系为:e1=h1(j||k||bsn||m||nv),其中,e1为所述第一中间参数,h1()表示第一哈希函数,m为待签名消息,nv为第二随机数,||表示以特定顺序的连接。

一种可能的实现方式中,所述第四约束关系为:c1=e1+xrmodq,其中,c1为所述第七签名参数,xr表示r对应的曲线上的点在x轴上的分量,r=[a]j,[a]j表示a与j进行点乘运算,a为所述第三随机数,mod表示取模运算。

s13、所述签名设备根据所述第七签名参数c1、所述私钥f、所述第三随机数a和所述质数q,按照第五约束关系确定第八签名参数s1。

一种可能的实现方式中,所述第五约束关系为:s1=(1+f)-1·(a-c1·f)modq。

s14、所述签名设备使用所述第一签名参数a'、所述第二签名参数b'、所述第三签名参数c'、所述第四签名参数d'、所述第五签名参数j、所述第六签名参数k、所述第七签名参数c1和所述第八签名参数s1对所述待签名消息m进行签名,得到匿名签名消息m′,并发送所述匿名签名消息m′。

本申请实施例中,通过上述s11~s14的处理过程,生成了群组成员基于发布设备颁发的凭证密钥,对未签名消息进行匿名签名,从而得到匿名签名消息,使得群组签名具有匿名性。

一种可能的实现方式中,所述签名设备确定第六签名参数k之后,所述方法还包括:

所述签名设备根据打开方公钥中的第一维公钥q和第四随机数中的第一分量rα,按照第六约束关系确定第一验证参数c1;根据打开方公钥中的第二维公钥v和所述第四随机数中的第二分量rβ,按照第七约束关系确定第二验证参数c2;根据打开方公钥中的第三维公钥w、所述第四随机数以及第一匿名量f,按照第八约束关系确定第三验证参数c3;其中,所述第四随机数为从所述有限域zp的一个子集中选取的,所述第一匿名量f为所述群组成员的私钥f和第一随机生成元p1的乘积,所述第一随机生成元p1为满足设定映射函数的双线性群对中的第一双线性群中的随机生成元;

所述匿名签名消息中还包括所述第一验证参数c1、所述第二验证参数c2和所述第三验证参数c3。

一种可能的实现方式中,所述第六约束关系为:c1=[rα]q,其中,c1为所述第一验证参数,rα为所述第四随机数中的第一分量,[rα]q表示rα与q进行点乘运算。

一种可能的实现方式中,所述第七约束关系为:其中,c2为所述第二验证参数,rβ为所述第四随机数中的第二分量,表示rβ与v进行点乘运算。

一种可能的实现方式中,所述第八约束关系为:c3=[rα+rβ]w+f,其中,c3为所述第三验证参数,f为所述第一匿名量,f=[f]p1,f为所述群组成员的私钥,p1为所述第一随机生成元。

如图2所示实施例中,提供了一种群组数字签名的验证方法,所述方法包括:

s201、验证设备接收到签名设备发送的匿名签名消息m'。

其中,验证设备为接收到签名设备发送的匿名签名消息的设备,验证设备可以是签名设备所属的群组中的一个设备,也可以是其他群组中的一个设备,本申请实施例不对验证设备进行限定。

s202、所述验证设备验证所述匿名签名消息m'中的第七签名参数c1或第八签名参数s1是否满足第一约束条件。

一种可能的实现方式中,所述第一约束条件为:c1∈[1,q-1]且s1∈[1,q-1],其中,c1为所述第七签名参数,s1为所述第八签名参数,q为所述签名设备所属的群组对应的质数。

s203、若不满足,则所述验证设备确定所述匿名签名消息m'无效;

s204、若满足,则所述验证设备验证所述匿名签名消息中的第五签名参数j是否满足所述第一约束关系;

若满足,则所述验证设备根据所述匿名签名消息m'中的第五签名参数j和第六签名参数k,确定所述签名设备的私钥f',并计算所述私钥f'与所述第五签名参数j的乘积,并验证所述签名设备的私钥f'是否在所述验证设备的黑名单中;

s205、若所述签名设备的私钥f'在所述验证设备的黑名单中,且所述乘积与所述第六签名参数k相等,则所述验证设备确定所述匿名签名消息m'无效;

s206、否则,所述验证设备根据所述匿名签名消息m'中的第一签名参数a'、所述签名设备所属的群组的公钥y,按照映射函数确定第一函数值根据所述匿名签名消息m'中的第二签名参数b'和第二随机生成元p2,按照所述映射函数确定第二函数值根据所述匿名签名消息m'中的第三签名参数c'和所述第二随机生成元p2,按照所述映射函数确定第三函数值根据所述匿名签名消息m'中的第一签名参数a'、第四签名参数d'和所述签名设备所属的群组的公钥x,按照所述映射函数确定第四函数值其中,所述第二随机生成元p2为满足所述映射函数的双线性群对中的第二双线性群中的随机生成元。

s207、若所述第一函数值不等于所述第二函数值并且所述第三函数值不等于所述第四函数值则所述验证设备确定所述匿名签名消息m'无效;

s208、否则,所述验证设备根据所述匿名签名消息m'中的第七签名参数c1、第八签名参数s1和所述签名设备所属的群组对应的质数q,按照第二约束条件确定第一验证参量t1。

一种可能的实现方式中,所述第二约束条件为:t1=c1+s1modq,其中,t1为所述第一验证参量,mod表示取模运算。

s209、若所述第一验证参量t1等于0,则所述验证设备确定所述匿名签名消息m'无效。

s210、若所述第一验证参量t1不等于0,所述验证设备确定所述匿名签名消息m'中的第七签名参数c1对应的验证参量c2;

s211、若所述第七签名参数对应的验证参量c2与所述第七签名参数c1不等,则所述验证设备确定所述匿名签名消息m'无效;

s212、否则,所述验证设备确定所述匿名签名消息m'有效。

本申请实施例中,通过上述s201~s211,实现了接收到匿名签名消息的验证设备,对该匿名签名消息进行有效性验证,在确定该匿名签名消息有效后,读取未签名消息,以获知签名设备所发送的数据。

一种可能的实现方式中,所述验证设备接收到验证设备发送的匿名签名消息,还包括:

所述验证设备接收所述签名设备发送的用于标识匿名签名消息对应的签名设备的连接基参数bsn和第二随机数nv,所述第二随机数nv为所述签名设备从设定长度的二进制随机数集合中选取的。

进一步,所述验证设备确定所述匿名签名消息中的第七签名参数c1对应的验证参量c2,包括:

所述验证设备根据所述匿名签名消息m'、所述连接基参数bsn,所述匿名签名消息m'中的第五签名参数j、第六签名参数k以及所述第二随机数nv,确定第二验证参量e2;

所述验证设备根据所述匿名签名消息m'中的第五签名参数j、第六签名参数k、第八签名参数s1,以及所述第一验证参量t1,确定第二中间参数

所述验证设备根据所述第二验证参量e2和所述第二中间参数确定所述第七签名参数c1对应的验证参量c2。

一种可能的实现方式中,所述第二验证参量e2根据以下公式计算得到:e2=h1(j||k||bsn||m'||nv),其中,h1()表示第一哈希函数,j为所述第五签名参数,k为所述第六签名参数,bsn为所述连接基参数,m'为所述匿名签名消息,nv为所述第二随机数。

一种可能的实现方式中,所述第三中间参数根据以下公式计算得到:其中,表示[s1]j+[t1]k确定的曲线上的点在x轴上的分量,表示[s1]j+[t1]k确定的曲线上的点在y轴上的分量。

一种可能的实现方式中,所述第七签名参数c1对应的验证参量c2根据以下公式计算得到:

下面通过三个具体实施例,对本申请实施例提供的一种群组数字签名的密钥验证方法进行详细说明。

实施例1:本实施例中群组中的群组成员(即签名设备)包含安全模块(也称为安全芯片),安全模块能够支持签名设备所有的计算能力,群组成员签名或验证过程需要在签名设备/验证设备和发布设备之间建立一个安全的鉴别通信信道,如图3所示。本实施例中具体的签名过程如下:

1)安全模块拥有群组成员的私钥f和群组成员的凭证密钥(a,b,c,d)。安全模块从有限域zp中选取随机数r′,并计算a′=[r′]a,b′=[r′]b,c′=[r′]c和d′=[r′]d;以及计算j=h(bsn);

2)安全模块计算k=[f]j。

3)安全模块从zp的一个子集中随机选取两个数(rα,rβ)。

4)安全模块计算c1=[rα]q,c2=[rβ]v,c3=[rα+rβ]w+f。

5)安全模块从zp中选取一个数作为随机数a。

6)安全模块计算r=[a]j;(xr,yr)←r和e1=h1(j||k||bsn||m||nv),其中,r为曲线上的一个点,其在x轴上的分量记为xr,其在y轴上的分量记为yr。

7)安全模块计算c1=e1+xrmodq和s1=(1+f)-1·(a-c1·f)modq。

8)安全模块发送(c1,s1)。

9)安全模块输出匿名签名消息δ=(a',b',c',d',k,j,c1,c2,c3,c1,s1,nv)。

上述过程可定义为基于sm2的群组签名和验证协议,基于签名协议框架,输入的是未签名消息、签名设备的连接基、群组成员的签名密钥(包括群组成员的私钥和群组成员的凭证密钥)、群组公共参数和群组公钥,输出的是群组签名的消息,包括匿名签名消息、消息(即未签名的消息)和连接基等;基于验证协议框架,输入的是群组签名的消息、群组公钥和群组公共参数,输出的是匿名签名消息的验证结果,即有效或无效,如图4所示。

实施例2:本实施例中,群组中的群组成员(即签名设备)中不包含安全模块(也称为安全芯片),签名设备本身能够支持该签名设备所有的计算能力,群组成员签名或验证过程需要在签名设备/验证设备和发布设备之间建立一个安全的鉴别通信信道,本实施例中具体的签名处理过程与实施例1相似,只是执行主体改为签名设备本身,具体参见实施例1中发布设备的相关描述。

实施例3:本实施例中群组中的群组成员(即签名设备)中包含安全模块(也称为安全芯片),但安全模块具有的计算能力有限,协议算法设计时安全模块只负责部分处理,群组成员签名或验证过程需要在签名设备/验证设备和发布设备之间建立一个安全的鉴别通信信道,本实施例中具体的签名处理过程为:

1)安全模块拥有群组成员的私钥f同时签名设备本身拥有群组成员的凭证密钥(a,b,c,d)。签名设备从有限域zp中选取随机数r′,并计算a′=[r′]a,b′=[r′]b,c′=[r′]c和d′=[r′]d;以及计算j=h(bsn)。

2)签名设备发送j给安全模块。

3)安全模块计算k=[f]j,并发送k给签名设备。

4)签名设备发送f给安全模块。

5)签名设备从zp的一个子集中随机选取两个数(rα,rβ)。

6)签名设备计算c1=[rα]q,c2=[rβ]v,c3=[rα+rβ]w+f。

7)安全模块从zp中选取一个数作为随机数a。

8)安全模块发送随机数a给签名设备。

9)签名设备计算r=[a]j;(xr,yr)←r和e1=h1(j||k||bsn||m||nv),其中,r为曲线上的一个点,其在x轴上的分量记为xr,其在y轴上的分量记为yr。

10)签名设备发送xr,e1给安全模块。

11)安全模块计算c1=e1+xrmodq和s1=(1+f)-1·(a-c1·f)modq。

12)安全模块发送(c1,s1)给签名设备。

13)签名设备输出匿名签名消息δ=(a',b',c',d',k,j,c1,c2,c3,c1,s1,nv)。

需要说明的是,在实施例3中,签名设备可以包括主签名模块和辅助签名模块,其中,安全模块又可称为辅助签名模块。即,在步骤1)-13)中,辅助签名模块执行安全模块参与执行的步骤,其余步骤由主签名模块来完成。

上述方法处理流程可以用软件程序实现,该软件程序可以存储在存储介质中,当存储的软件程序被调用时,执行上述方法步骤。当然,上述方法流程也可以硬件实现,包括但不限于固化在芯片或ip核中。

综上所述,本申请实施例提供一种群组数字签名及其验证方法、设备,用于生成群组成员基于发布设备颁发的凭证密钥,并对未签名消息进行匿名签名得到匿名签名消息,使得群组签名具有匿名性。并且,接收到匿名签名消息的验证设备,对该匿名签名消息进行有效性验证,在确定该匿名签名消息有效后,读取未签名消息,以获知签名设备所发送的数据。

基于同一发明构思,本发明实施例中还提供了一种签名设备,如图5所示实施例中,所述设备包括:

第一处理模块51,用于从有限域zp中选择第一随机数r',并分别将发布设备为所述签名设备生成的凭证密钥中的第一参数a、第二参数b、第三参数c和第四参数d与所述第一随机数r'的乘积,作为第一签名参数a'、第二签名参数b'、第三签名参数c'和第四签名参数d';根据连接基参数bsn,按照第一约束关系确定第五签名参数j,并根据所述第五签名参数j和所述签名设备的私钥f,按照第二约束关系确定第六签名参数k;其中,所述连接基参数bsn用于标识与匿名签名消息对应的签名设备;

第二处理模块52,用于根据所述第五签名参数j、所述第六签名参数k、所述连接基参数bsn、待签名消息m和第二随机数nv,按照第三约束关系确定第一中间参数e1;根据所述第一中间参数e1、所述第五签名参数j、第三随机数a和所述签名设备所属的群组对应的质数q,按照第四约束关系确定第七签名参数c1;其中,所述第二随机数nv为从设定长度的二进制随机数集合中选取的,所述第三随机数a为从所述有限域zp中选取的,所述质数q小于或等于所述签名设备所属的群组中的群组成员的数目;

第三处理模块53,用于根据所述第七签名参数c1、所述私钥f、所述第三随机数a和所述质数q,按照第五约束关系确定第八签名参数s1;

第四处理模块54,用于使用所述第一签名参数a'、所述第二签名参数b'、所述第三签名参数c'、所述第四签名参数d'、所述第五签名参数j、所述第六签名参数k、所述第七签名参数c1和所述第八签名参数s1对所述待签名消息m进行签名,得到匿名签名消息m′;

发送模块55,用于发送匿名签名消息m′。

一种可能的实施方式中,所述设备还包括:

第五处理模块56,用于根据打开方公钥中的第一维公钥q和第四随机数中的第一分量rα,按照第六约束关系确定第一验证参数c1;

根据打开方公钥中的第二维公钥v和所述第四随机数中的第二分量rβ,按照第七约束关系确定第二验证参数c2;

根据打开方公钥中的第三维公钥w、所述第四随机数以及第一匿名量f,按照第八约束关系确定第三验证参数c3;其中,所述第四随机数为从所述有限域zp的一个子集中选取的,所述第一匿名量f为所述群组成员的私钥f和第一随机生成元p1的乘积,所述第一随机生成元p1为满足设定映射函数的双线性群对中的第一双线性群中的随机生成元;所述匿名签名消息中还包括所述第一验证参数c1、所述第二验证参数c2和所述第三验证参数c3。

基于同一发明构思,本发明实施例中还提供了一种验证设备,由于该设备解决问题的原理与上述图2所示的方法实施例相似,因此该设备的实施可以参见方法的实施,重复之处不再赘述。

图6所示实施例中,提供了一种验证设备,所述设备包括:

接收模块61,用于接收到签名设备发送的匿名签名消息m';

验证模块62,用于验证所述匿名签名消息m'中的第七签名参数c1或第八签名参数s1是否满足第一约束条件;

若不满足,则确定所述匿名签名消息m'无效;若满足,则验证所述匿名签名消息中的第五签名参数j是否满足所述第一约束关系;

若满足,则根据所述匿名签名消息m'中的第五签名参数j和第六签名参数k,确定所述签名设备的私钥f',并计算所述私钥f'与所述第五签名参数j的乘积,并验证所述签名设备的私钥f'是否在所述验证设备的黑名单中;

若所述签名设备的私钥f'在所述验证设备的黑名单中,且所述乘积与所述第六签名参数k相等,则确定所述匿名签名消息m'无效;否则,所述验证设备根据所述匿名签名消息m'中的第一签名参数a'、所述签名设备所属的群组的公钥y,按照映射函数确定第一函数值根据所述匿名签名消息m'中的第二签名参数b'和第二随机生成元p2,按照所述映射函数确定第二函数值根据所述匿名签名消息m'中的第三签名参数c'和所述第二随机生成元p2,按照所述映射函数确定第三函数值根据所述匿名签名消息m'中的第一签名参数a'、第四签名参数d'和所述签名设备所属的群组的公钥x,按照所述映射函数确定第四函数值其中,所述第二随机生成元p2为满足所述映射函数的双线性群对中的第二双线性群中的随机生成元;

若所述第一函数值不等于所述第二函数值并且所述第三函数值不等于所述第四函数值则确定所述匿名签名消息m'无效;否则,根据所述匿名签名消息m'中的第七签名参数c1、第八签名参数s1和所述签名设备所属的群组对应的质数q,按照第二约束条件确定第一验证参量t1;

若所述第一验证参量t1等于0,则确定所述匿名签名消息m'无效;若所述第一验证参量t1不等于0,确定所述匿名签名消息m'中的第七签名参数c1对应的验证参量c2;

若所述第七签名参数对应的验证参量c2与所述第七签名参数c1不等,则确定所述匿名签名消息m'无效;否则,确定所述匿名签名消息m'有效。

一种可能的实现方式中,所述接收模块61还用于:

接收所述签名设备发送的用于标识匿名签名消息对应的签名设备的连接基参数bsn和第二随机数nv,所述第二随机数nv为所述签名设备从设定长度的二进制随机数集合中选取的。

一种可能的实现方式中,所述验证模块62具体用于:

根据所述匿名签名消息m'、所述连接基参数bsn,所述匿名签名消息m'中的第五签名参数j、第六签名参数k以及所述第二随机数nv,确定第二验证参量e2;

根据所述匿名签名消息m'中的第五签名参数j、第六签名参数k、第八签名参数s1,以及所述第一验证参量t1,确定第二中间参数

根据所述第二验证参量e2和所述第二中间参数确定所述第七签名参数c1对应的验证参量c2。

基于同一发明构思,本发明实施例中还提供了一种对应安全模块/安全芯片的安全装置,由于该装置解决问题的原理与上述图2所示的方法实施例相似,因此该设备的实施可以参见方法的实施,重复之处不再赘述。

图7所示实施例中,提供了一种安全装置,所述装置包括:

第一功能模块71,用于根据第五签名参数j和签名设备的私钥f,按照第二约束关系确定第六签名参数k;

第二功能模块72,用于从有限域zp中选取第三随机数a;

第三功能模块73,用于根据第一中间参数e1、所述第五签名参数j、所述第三随机数a和所述签名设备所属的群组对应的质数q,按照第四约束关系确定第七签名参数c1;并根据所述第七签名参数c1、所述私钥f、所述第三随机数a和所述质数q,按照第五约束关系确定第八签名参数s1;

发送模块74,用于发送所述第七签名参数c1和所述第八签名参数s1。

一种可能的实现方式中,所述装置还包括:

第四功能模块75,用于从有限域zp中选择第一随机数r',并分别将发布设备为所述签名设备生成的凭证密钥中的第一参数a、第二参数b、第三参数c和第四参数d与所述第一随机数r'的乘积,作为第一签名参数a'、第二签名参数b'、第三签名参数c'和第四签名参数d';根据连接基参数bsn,按照第一约束关系确定第五签名参数j;其中,所述连接基参数bsn用于标识与匿名签名消息对应的签名设备;

第五功能模块76,用于从所述zp的一个子集中随机选取第四随机数(rα,rβ),以及根据打开方公钥中的第一维公钥q和第四随机数中的第一分量rα,按照第六约束关系确定第一验证参数c1,根据打开方公钥中的第二维公钥v和所述第四随机数中的第二分量rβ,按照第七约束关系确定第二验证参数c2,根据打开方公钥中的第三维公钥w、所述第四随机数以及第一匿名量f,按照第八约束关系确定第三验证参数c3,所述第一匿名量f为所述群组成员的私钥f和第一随机生成元p1的乘积,所述第一随机生成元p1为满足设定映射函数的双线性群对中的第一双线性群中的随机生成元;

其中,所述第三功能模块73,还用于根据所述第五签名参数j和所述第三随机数a确定xr,其中,xr表示r对应的曲线上的点在x轴上的分量,r=[a]j,[a]j表示a与j进行点乘运算;并根据所述第五签名参数j、所述第六签名参数k、所述连接基参数bsn、待签名消息m和第二随机数nv,按照第三约束关系确定第一中间参数e1;还用于输出匿名签名消息。

一种可能的实现方式中,所述装置还包括:

接收模块77,用于接收所述签名设备发送的第五签名参数j,所述第五签名参数j是所述签名设备根据连接基参数bsn,按照第一约束关系确定的;其中,所述连接基参数bsn用于标识与匿名签名消息对应的签名设备;

其中,

发送模块74,还用于将所述第六签名参数k发送给所述签名设备;

接收模块77,还用于接收所述签名设备发送的第一匿名量f,所述第一匿名量f为所述群组成员的私钥f和第一随机生成元p1的乘积,所述第一随机生成元p1为满足设定映射函数的双线性群对中的第一双线性群中的随机生成元;

发送模块74,还用于将所述第三随机数a发送给所述签名设备;

接收模块77,还用于接收所述签名设备发送的所述第三随机数a与所述第五签名参数j的乘积对应的曲线上的点r在x轴上的分量xr以及第一中间参数e1;

发送模块74,还具体用于将所述第七签名参数c1和所述第八签名参数s1发送给所述签名设备。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

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