环签名方法和设备与流程
未命名
08-14
阅读:119
评论:0
1.本发明涉及信息安全数据处理技术领域,尤其涉及一种环签名方法和设备。
背景技术:
2.环签名是一种应用广泛的密码技术。环签名具有较好地匿名性,验证者只能确认环签名来自于集合中的某个签名者,但无法确定该签名具体来自于集合中的哪个签名者。并且,环签名的匿名性是无条件的,即使事后签名者的私钥泄露也无法确认该环签名所对应的签名者。
3.在实际应用中,签名者可能需要在事后证明自己是环签名所对应的签发者。然而,由于环签名具有匿名性,无法证明该环签名所对应的具体签发者。因此,有待提出一种新的解决方案。
技术实现要素:
4.本发明实施例提供一种环签名方法和设备,用以事后撤销环签名的匿名性,以证明环签名所对应的签发者。
5.第一方面,本发明实施例提供一种环签名方法,应用于签名端,该方法包括:获取公钥集合和待签名消息,所述公钥集合中包括多个环成员的公钥;确定所述签名端的身份证明;生成所述多个环成员各自对应的第一随机数,以及生成所述多个环成员和所述签名端各自对应的第二随机数;根据所述多个环成员各自对应的第一随机数、所述多个环成员的公钥以及所述待签名消息,生成所述多个环成员和所述签名端各自对应的第一签名值;根据所述多个环成员和所述签名端各自对应的第二随机数,生成所述多个环成员和所述签名端各自对应的第二签名值;根据所述身份证明、多个第一签名值以及多个第二签名值,生成所述待签名消息所对应的目标环签名。
6.第二方面,本发明实施例提供一种环签名装置,位于签名端,该装置包括:获取模块,用于获取公钥集合和待签名消息,所述公钥集合中包括多个环成员的公钥;确定模块,用于确定所述签名端的身份证明;第一生成模块,用于生成所述多个环成员各自对应的第一随机数,以及生成所述多个环成员和所述签名端各自对应的第二随机数;第二生成模块,用于根据所述多个环成员各自对应的第一随机数、所述多个环成员的公钥以及所述待签名消息,生成所述多个环成员和所述签名端各自对应的第一签名值;第三生成模块,用于根据所述多个环成员和所述签名端各自对应的第二随机数,
生成所述多个环成员和所述签名端各自对应的第二签名值;签名模块,用于根据所述身份证明、多个第一签名值以及多个第二签名值,生成所述待签名消息所对应的目标环签名。
7.第三方面,本发明实施例提供一种电子设备,包括:存储器、处理器、通信接口;其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器至少可以实现如第一方面所述的环签名方法。
8.第四方面,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被管控设备的处理器执行时,使所述处理器至少可以实现如第一方面所述的环签名方法。
9.第五方面,本发明实施例提供一种环签名方法,应用于验证端,所述方法包括:接收签名端发送的签名证据,所述签名证据中包括签名端的身份标识和目标环签名,所述目标环签名是按上述中任一项所述的环签名方法得到的;基于所述签名证据验证所述目标环签名是否为有效签名;若所述目标环签名为有效签名,则根据所述签名证据中的身份标识对所述签名端的身份进行验证。
10.第六方面,本发明实施例提供一种环签名装置,位于验证端,所述装置包括:接收模块,用于接收签名端发送的签名证据,所述签名证据中包括签名端的身份标识和目标环签名,所述目标环签名是按上述中任一项所述的环签名方法得到的;验证模块,用于基于所述签名证据验证所述目标环签名是否为有效签名;确认模块,用于若所述目标环签名为有效签名,则根据所述签名证据中的身份标识对所述签名端的身份进行验证。
11.第七方面,本发明实施例提供一种终端设备,包括:存储器、处理器、通信接口;其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器至少可以实现如第五方面所述的环签名方法。
12.第八方面,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被计算设备的处理器执行时,使所述处理器至少可以实现如第五方面所述的环签名方法。
13.第九方面,本发明实施例提供一种环签名方法,应用于验证端,所述方法包括:接收签名端发送的目标环签名和待签名消息,所述目标环签名中包括多个第一签名值和多个第二签名值,所述目标环签名是按上述第一方面所述的环签名方法得到的;获取公钥集合,所述公钥集合中包括多个环成员的公钥;基于所述多个环成员的公钥、所述多个第一签名值、所述多个第二签名值以及所述待签名消息,验证所述目标环签名是否为有效签名。
14.第十方面,本发明实施例提供一种环签名装置,位于验证端,所述装置包括:接收模块,用于接收签名端发送的目标环签名和待签名消息,所述目标环签名中包括多个第一签名值和多个第二签名值,所述目标环签名是按上述第一方面所述的环签名方法得到的;获取模块,用于获取公钥集合,所述公钥集合中包括多个环成员的公钥;验证模块,用于基于所述多个环成员的公钥、所述多个第一签名值、所述多个第二
签名值以及所述待签名消息,验证所述目标环签名是否为有效签名。
15.第十一方面,本发明实施例提供一种终端设备,包括:存储器、处理器、通信接口;其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器至少可以实现如第九方面所述的环签名方法。
16.第十二方面,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被计算设备的处理器执行时,使所述处理器至少可以实现如第九方面所述的环签名方法。
17.本发明实施例提供的环签名方案可以适用于签名端和验证端,签名端生成环签名之后,可以将签名证据发送至验证端,以验证自己为该环签名所对应的签发者,同时也不泄露该签名者的具体身份信息。具体地,对于任一签名端来说,在生成环签名时,首先获取环成员集合所对应的公钥集合和待签名消息,该公钥集合中包括签名端的公钥和多个环成员的公钥。而后,确定签名端的身份证明,该身份证明用于表征签名端的身份,并不携带任何签名端所对应的具体身份信息。接着,生成多个环成员各自对应的第一随机数,以及生成多个环成员和签名端各自对应的第二随机数。并根据多个环成员各自对应的第一随机数、多个环成员的公钥以及待签名消息,生成多个环成员和签名端各自对应的第一签名值,同时根据多个环成员和签名端各自对应的第二随机数,生成多个环成员和签名端各自对应的第二签名值。最后,根据该身份证明、多个第一签名值以及多个第二签名值,生成待签名消息所对应的目标环签名。
18.在上述方案中,根据环成员集合中多个环成员对应的第一随机数、各个环成员所对应的第二随机数、多个环成员的公钥以及签名端的身份证明,生成目标环签名,可以使得生成的目标环签名具有较好地匿名性,将签名端很好地隐藏在多个环成员中。另外,由于在生成环签名时,在环签名中添加了签名端的身份证明,那么签名端可以在事后撤销环签名的匿名性,以证明目标环签名所对应的签发者,并且由于目标环签名中的签名端的身份证明只能用于证明签名端的身份,并不携带任何签名端所对应的具体身份信息,那么可以在证明环签名所对应的签发者时,不泄露该签名端的具体身份信息,可以很好地保护签名端的个人隐私信息。
附图说明
19.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
20.图1为本发明实施例提供的一种环签名系统的组成示意图;图2为本发明实施例提供的一种环签名方法的流程图;图3为本发明实施例提供的一种生成多个环成员和签名端各自对应的第一签名值的流程图;图4为本发明实施例提供的一种生成多个环成员和签名端各自对应的第二签名值的流程图;图5为本发明实施例的另一种环签名方法的流程示意图;
图6为本发明实施例的另一种环签名方法的流程示意图;图7为本发明实施例提供的一种环签名装置的结构示意图;图8为与图7所示实施例提供的环签名装置对应的电子设备的结构示意图;图9为本发明实施例提供的一种环签名装置的结构示意图;图10为与图9所示实施例提供的环签名装置对应的电子设备的结构示意图。
具体实施方式
21.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
22.在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在
……
时”或“当
……
时”。
23.还需要说明的是,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
24.另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。
25.随着网络技术的快速发展,越来越多的应用领域开始在网络上进行数据通信,那么如何保证网络中传输的数据安全性就显得非常重要了。数字签名是一种保护数据安全的有效方法,通常数字签名的方式,可以验证签名消息在传输过程中是否被篡改,同时还能验证签名者身份的真实性。
26.在实际应用中,签名端对某一消息 m 进行签名后,在公开签名的同时,又想隐藏签名端的具体信息,让别人不知道自己的确切身份,可以采用环签名的方式将自己藏到一群人中。环签名是一种新型的匿名签名技术,没有群管理员以及群的建立过程,不需要环成员间的合作,就可以将签名端隐藏在多个环成员之间。环签名具有较好地匿名性,验证者只能确认环签名来自于集合中的某个签名者,但无法确定该签名具体来自于集合中的哪个签名者。并且,环签名的匿名性是无条件的,即使事后签名者的私钥泄露也无法确认该环签名所对应的签名者。
27.然而,在很多应用场景中,签名者可能需要在事后证明自己是环签名所对应的签发者,同时又不泄露签名者的具体身份信息。由于环签名具有匿名性,无法证明该环签名所对应的具体签发者。因此,在本发明实施例中提出一种新的环签名方法,通过环成员集合中多个环成员对应的第一随机数、各个环成员所对应的第二随机数、多个环成员的公钥以及
签名端的身份证明,生成目标环签名,可以使得生成的目标环签名具有较好地匿名性,将签名端很好地隐藏在多个环成员中。并且,环签名中携带了只能用于证明签名端的身份的身份证明,并不携带任何签名端所对应的具体身份信息,那么签名端可以在事后撤销环签名的匿名性,以证明目标环签名所对应的签发者,同时可以不泄露该签名端的具体身份信息,可以很好地保护签名端的个人隐私信息。
28.通过下面各个实施例对本方案的环签名方法进行详细介绍。
29.本发明实施例提供的环签名方法可以由一电子设备来执行,该电子设备可以是诸如pc机、笔记本电脑、智能手机等终端设备,也可以是服务器。该服务器可以是包含一独立主机的物理服务器,或者也可以为虚拟服务器,或者也可以为云端服务器或服务器集群。下面分别对签名端、验证端执行的环签名过程进行示例性说明。
30.图1为本发明实施例提供的一种环签名系统的组成示意图。如图1所示,该环签名系统包括:签名端和验证端。其中,签名端主要用于生成环签名,验证端主要用于对签名端所生成的环签名进行签名有效性验证以及身份验证。
31.本实施例提供的环签名方案主要包括系统初始化、生成环签名、以及环签名验证等过程。签名端在生成环签名之前,先进行系统初始化操作,生成签名端公私钥对以及确定公钥集合。具体的,签名端生成一个随机数,将该随机数确定为签名端的私钥,并基于椭圆曲线基点和私钥,生成签名端的公钥。接着,签名端随机选择多个其他用户构成环成员,并基于多个环成员的公钥以及签名端的公钥生成公钥集合。另外,签名端可以临时选择多个其他用户组成环成员,具有一定的临时性和随机性,并且由随机选取出的多个环成员以及签名端组成群集合。即签名端也为群集合中的一个环成员,可以很好地隐藏在群集合中的多个环成员中间。
32.例如,签名端随机选择一个整数,作为签名端的私钥,即,其中是椭圆曲线基点的阶。并基于椭圆曲线基点和签名端的私钥,计算签名端的公钥,即公钥。签名端随机选择n个其他用户作为环成员,由n个环成员构成集合。并分别对n个环成员和签名端进行编号,确定各自所对应的标识分别为,并将各个环成员所对应的编号确定为各个环成员在公钥集合中所对应的索引,其中,将签名端所对应的索引设置为s。获取n个环成员和签名端所对应的公钥,将n+1个的公钥构成公钥集合。
33.当完成系统初始化之后,签名端可以根据公钥集合中的多个环成员的公钥生成环签名。具体的,首先获取公钥集合和待签名消息,公钥集合中包括签名端的公钥和多个环成员的公钥。而后,确定签名端的身份证明。生成多个环成员各自对应的第一随机数,以及生成多个环成员和签名端各自对应的第二随机数。并根据多个环成员各自对应的第一随机数、多个环成员的公钥以及待签名消息,生成多个环成员和签名端各自对应的第一签名值;根据多个环成员和签名端各自对应的第二随机数,生成多个环成员和签名端各自对应的第二签名值,最后,根据身份证明、多个第一签名值以及多个第二签名值,生成待签名消息所对应的目标环签名。
34.其中,签名端可以随机选取的一个不带任何身份信息的标识或者标签,确定为签
名端的身份证明。例如,签名端的身份证明是签名端随机选择的一个比特串,将其比特串确定为身份标识。即签名端的身份证明只是用于证明签名端的身份,并不携带任何签名端所对应的具体身份信息。
35.在生成目标环签名时,添加了签名端的身份证明,并且身份证明只是用于证明签名端的身份,并不携带任何签名端所对应的具体身份信息,这样在生成的目标环签名后,可以在事后证明该目标环签名所对应的签发者,并且在证明环签名所对应的签发者时,可以不泄露该签发者的具体身份信息,可以很好地保护签名端的个人隐私信息。
36.另外,在实际应用中,签名端使用环签名的方式生成目标环签名之后,环签名系统中的验证端可以对签名端的目标环签名进行验证,以验证该目标环签名的真实性,从而确定该目标环签名所对应的签发者为环上成员。其中,签名端对目标环签名进行验证的具体实现过程可以包括:首先接收签名端发送的目标环签名和待签名消息,其中,目标环签名包括多个第一签名值、多个第二签名值。而后获取公钥集合,公钥集合中包括多个环成员的公钥;基于多个环成员的公钥、多个第一签名值、多个第二签名值以及待签名消息,验证目标环签名是否为有效签名。
37.另外,在一可选实施例中,环签名系统中的验证端还可以对签名端的身份进行验证。例如,在实际应用中,当签名端有身份验证需求时,可以向验证端提交签名证据,以使得验证端对签名端的身份进行验证。具体的,签名端向验证端发送签名证据,其中,签名证据中包括签名端的身份标识和目标环签名。验证端接收签名端发送的签名证据,之后基于签名证据验证目标环签名是否为有效签名;若目标环签名为有效签名,则根据签名证据中的身份标识对签名端的身份进行验证。
38.以上对环签名系统以及环签名系统中各个组成部分进行了简单介绍,下面对环签名系统中签名端和验证端的处理过程进行示例性说明。
39.图2为本发明实施例提供的一种环签名方法的流程图。参考附图2所示,本实施例提供了一种环签名方法,该方法的执行主体可以为签名端,可以理解的是,该签名端设备可以实现为软件、或者软件和硬件的组合,具体的,如图2所示,该环签名方法可以包括如下步骤:201、获取公钥集合和待签名消息,公钥集合中包括多个环成员的公钥。
40.202、确定签名端的身份证明。
41.203、生成多个环成员各自对应的第一随机数,以及生成多个环成员和签名端各自对应的第二随机数。
42.204、根据多个环成员各自对应的第一随机数、多个环成员的公钥以及待签名消息,生成多个环成员和签名端各自对应的第一签名值。
43.205、根据多个环成员和签名端各自对应的第二随机数,生成多个环成员和签名端各自对应的第二签名值。
44.206、根据身份证明、多个第一签名值以及多个第二签名值,生成待签名消息所对应的目标环签名。
45.在本发明实施例中,签名端在生成目标环签名时,首先获取公钥集合和待签名消息。其中,公钥集合中包括多个环成员的公钥和签名端的公钥。而后,确定签名端的身份证明。为了避免在其他用户获取到目标环签名后,可以直接获知该签名端的具体身份信息,那
么在确定签名端的身份证明时,签名端的身份证明中不包括任何签名端所对应的具体身份信息,该身份证明只是用于证明签名端的身份。
46.在一可选实施例中,确定签名端的身份证明的具体实现方式可以包括:确定签名端的身份标识,身份标识包括随机选择的比特串;确定身份标识对应的哈希值;将哈希值确定为签名端的身份证明。例如,随机选择一个比特串,确定为签名端的身份标识,即计算身份标识对应的哈希值,即。其中,为预设hash函数。将该哈希值确定为签名端的身份证明。
47.在生成身份证明时,不能直接基于签名端的身份标识,生成签名端的身份证明,这样其他用户都可以获知该签名端的身份标识,以冒充该签名端。因此,在本发明实施例中,利用预设的哈希函数,确定身份标识对应的哈希值,并将哈希值确定为签名端的身份证明。由于哈希函数具有单向性、抗篡改的特点,那么利用哈希函数对身份标识进行处理后,获得哈希值,通过这个哈希值是没有办法反推回来得到输入的身份标识,可以有效保护了身份标识信息的安全性,并且对于任意一个输入,哪怕是很小的改动,其哈希值的变化也会非常大,保证了身份标识不被篡改。这样在进行身份验证时,若利用签名端所提供的身份标识,计算出的哈希值与目标环签名中的身份证明的哈希值一致,则意味着这个身份标识信息是没有被篡改过的,且该签名端即为目标环签名的签发者。
48.在另一可选实施例中,确定签名端的身份证明的具体实现方式可以包括:生成一个随机数,并将随机数确定为签名端的身份标识;根据随机数和椭圆曲线基点,生成签名端的身份证明。例如,随机选择一个整数,确定为签名端的身份标识,即根据随机数和椭圆曲线基点,计算签名端的身份证明,即。
49.在本发明实施例中,该身份标识相当于是一个私钥,基于私钥和椭圆曲线基点,生成的身份证明相当于公钥,利用加密算法生成的身份证明,无法直接基于身份证明反向推算出签名端的身份标识,这样后续验证者基于签名端所提供的身份标识计算出的身份证明与目标环签名中的身份证明一致,则可以证明该签名端即为目标环签名的签发者。
50.而后,生成多个环成员各自对应的第一随机数,以及生成多个环成员和签名端各自对应的第二随机数。这里生成的第一随机数与多个环成员一一对应,即群集合除签名端以外,各个环成员均对应有一个第一随机数。生成的第二随机数与公钥集合中的各个公钥一一对应,即群集合中多个环成员和签名端均对应的一个第二随机数。
51.例如,群集合中包括n个环成员和签名端,其中,群集合中各个环成员所对应的标识分别为0、1...n,签名端对应的标识为s。公钥集合中包括n+1个公钥,即分别为()。随机选择n个整数确定为多个环成员各自对应的第一随机数,即。随机选择n+1个整数确定为多个环成员和签名端各自对应的第二随机数,即。
52.接着,根据多个第一随机数、多个第二随机数以及多个环成员的公钥,生成目标环签名。其中,目标环签名主要包括三部分,多个第一签名值、多个第二签名值、以及签名端的
身份证明。具体的,签名端首先根据多个环成员各自对应的第一随机数、多个环成员的公钥以及待签名消息,生成多个环成员和签名端各自对应的第一签名值。根据多个环成员和签名端各自对应的第二随机数,生成多个环成员和所述签名端各自对应的第二签名值;根据身份证明、多个第一签名值以及多个第二签名值,生成待签名消息所对应的目标环签名。
53.另外,生成多个环成员和签名端各自对应的第一签名值之前,该方法还包括:根据多个环成员各自对应的第一随机数、多个环成员和签名端各自对应的第二随机数以及多个环成员对应的公钥,生成多个环成员和签名端各自对应的第一临时公钥;根据多个第一临时公钥、待签名消息、以及签名端的身份证明,生成消息签名值。
54.在生成消息签名值之后,签名端根据多个环成员各自对应的第一随机数、多个环成员的公钥以及待签名消息,生成多个环成员和签名端各自对应的第一签名值。可选地,根据多个环成员各自对应的第一随机数、多个环成员的公钥以及待签名消息,生成多个环成员和签名端各自对应的第一签名值的具体实现方式可以包括:将多个环成员各自对应的第一随机数确定为多个环成员各自对应的第一签名值;获取多个环成员各自对应的第一签名值和消息签名值,根据多个环成员各自对应的第一签名值和多个环成员的公钥以及待签名消息,生成签名端对应的第一签名值。
55.在生成多个环成员和签名端各自对应的第一签名值之后,根据多个环成员和签名端各自对应的第二随机数,生成多个环成员和签名端各自对应的第二签名值。可选地,根据多个环成员和签名端各自对应的第二随机数,生成多个环成员和签名端各自对应的第二签名值的具体实现方式可以包括:获取签名端的私钥,并根据私钥和签名端对应的第二随机数,生成签名端对应的第二签名值;将多个环成员各自对应的第二随机数确定为多个环成员各自对应的第二签名值。在生成第二签名值时,签名端和群集合中的多个环成员分别采用不同的生成方法,签名端生成的第一签名值时不仅包括签名端的私钥还包括签名端的第一随机数,可以起到混淆签名端私钥的作用,保护签名端的私钥不被泄露。
56.最后,根据身份证明、多个第一签名值以及多个第二签名值,生成待签名消息所对应的目标环签名。即目标环签名主要由三部分构成,签名端的身份证明、签名端和多个环成员各自对应的第一签名值以及签名端和多个环成员各自对应的第二签名值。例如,签名端的身份证明为,签名端和多个环成员各自对应的第一签名值分别为,签名端和多个环成员各自对应的第二签名值分别为、......,则获得的目标环签名为。由于目标环签名中包括签名端的身份证明,使得基于该环签名方法生成的目标环签名可在事后撤销环签名的匿名性,使得后续验证端可以基于该目标环签名中的身份证明来证明目标环签名所对应的签发者。
57.本发明实施例提供的环签名方法,通过环成员集合中多个环成员对应的第一随机数、各个环成员所对应的第二随机数、多个环成员的公钥、以及签名端的身份证明,生成目标环签名,可以使得生成的目标环签名具有较好地匿名性,将签名端很好地隐藏在多个环成员中。另外,由于在生成环签名时,在环签名中添加了签名端的身份证明,那么签名端可以在事后撤销环签名的匿名性,以证明目标环签名所对应的签发者,并且由于目标环签名中的签名端的身份证明只能用于证明签名端的身份,并不携带任何签名端所对应的具体身份信息,那么可以在证明环签名所对应的签发者时,不泄露该签名端的具体身份信息,可以
很好地保护签名端的个人隐私信息。
58.上述实施例介绍了签名端生成目标环签名的过程,为了便于理解目标环签名中的多个第一签名值的生成过程,结合图3对生成多个环成员和签名端各自对应的第一签名值的具体实现过程进行示例性说明。
59.图3为本发明实施例提供的一种生成多个环成员和签名端各自对应的第一签名值的流程图。参考附图3所示,本实施例提供了一种根据多个环成员各自对应的第一随机数、多个环成员的公钥以及待签名消息,生成多个环成员和签名端各自对应的第一签名值的具体实现方式,具体的,该方法可以包括如下步骤:301、将多个环成员各自对应的第一随机数确定为多个环成员各自对应的第一签名值。
60.302、获取多个环成员各自对应的第一签名值和消息签名值,根据多个环成员各自对应的第一签名值和消息签名值,生成签名端对应的第一签名值。
61.在本发明实施例中,分别为群集合中的各个环成员生成与之对应的第一签名值。其中,多个环成员和签名端采用不同的生成方法。首先,将多个环成员各自对应的第一随机数确定为多个环成员各自对应的第一签名值。而后。根据多个环成员各自对应的第一签名值和消息签名值,生成签名端对应的第一签名值。
62.在生成签名端对应的第一签名值时,首先获取多个环成员各自对应的第一签名值和消息签名值。在一可选实施例中,可以通过多个第一临时公钥、待签名消息、以及签名端的身份证明,获取消息签名值。具体的,根据多个环成员各自对应的第一随机数、多个环成员和签名端各自对应的第二随机数以及多个环成员对应的公钥,生成多个环成员和签名端各自对应的第一临时公钥;根据多个第一临时公钥、待签名消息、以及签名端的身份证明,生成消息签名值。
63.可选地,根据多个环成员各自对应的第一随机数、多个环成员和签名端各自对应的第二随机数以及多个环成员对应的公钥,生成多个环成员和签名端各自对应的第一临时公钥的具体实现方式可以为:获取签名端对应的第二随机数和椭圆曲线基点的第一乘积值,将第一乘积值确定为签名端对应的第一临时公钥;获取多个环成员各自对应的第一随机数、多个环成员各自对应的第二随机数、多个环成员各自对应的公钥以及椭圆曲线基点,分别获取多个环成员各自对应的第二随机数与椭圆曲线基点的第二乘积值,分别获取多个环成员各自对应的第一随机数与多个环成员各自对应的公钥的第三乘积值,分别将多个环成员各自对应的第二乘积值与多个环成员各自对应的第三乘积值的和值,确定为多个环成员各自对应的第一临时公钥。
64.例如,具体应用时,假设多个环成员各自对应的第一随机数为,多个环成员和签名端各自对应的第二随机数为,多个环成员各自对应的公钥为,椭圆曲线基点为。其中,是指群集合中各个环成员所对应的标识,并且签名端所对应的标识为s。并且第一随机数可以为任意整数,第二随机数可以为任意整数。首先,获取签名端对应的第二随机数和椭圆曲线
基点的第一乘积值,将第一乘积值确定为签名端对应的第一临时公钥,即=。接着分别获取多个环成员各自对应的第二随机数与椭圆曲线基点的第二乘积值,,并分别获取多个环成员各自对应的第一随机数与多个环成员各自对应的公钥的第三乘积值,,分别获取多个环成员各自对应的第二乘积值与多个环成员各自对应的第三乘积值的和值,,并将多个环成员各自对应的和值确定为多个环成员各自对应的第一临时公钥,即=,。
65.在获取到多个环成员和签名端各自对应的第一临时公钥之后,根据多个第一临时公钥、待签名消息、以及签名端的身份证明,生成消息签名值。例如,多个环成员和签名端各自对应的第一临时公钥为,签名端的身份证明为,待签名消息为,则消息签名值为。
66.获取到多个环成员各自对应的第一签名值和消息签名值之后,根据多个环成员各自对应的第一签名值和消息签名值,生成签名端对应的第一签名值。在一可选实施例中,根据多个环成员各自对应的第一签名值和消息签名值,生成签名端对应的第一签名值的具体实现方式可以包括:获取多个环成员对应的第一签名值的和值;确定消息签名值与该和值的差值,并将该差值确定为签名端对应的第一签名值。
67.例如,假设多个环成员各自对应的第一随机数为,则多个环成员各自对应的第一签名值=,。假设消息签名值为。获取多个环成员对应的第一签名值的和值为,获取消息签名值与该和值的差值为,并将该差值确定为签名端对应的第一签名值,即=。
68.在本发明实施例中,通过将多个环成员各自对应的第一随机数确定为多个环成员各自对应的第一签名值,并根据多个环成员各自对应的第一签名值和消息签名值,生成签名端对应的第一签名值,这样可以将签名端所对应的第一签名值隐藏在多个环成员对应的第一签名值中。
69.上述实施例介绍了生成多个环成员和签名端各自对应的第一签名值的具体实现过程,为了更好地理解多个第二签名值的生成过程,下面结合图4对生成多个环成员和签名端各自对应的第二签名值的具体实现过程进行示例性说明。
70.图4为本发明实施例提供的一种生成多个环成员和签名端各自对应的第二签名值的流程图。参考附图4所示,本实施例提供了一种根据多个环成员和签名端各自对应的第二
随机数,生成多个环成员和签名端各自对应的第二签名值的具体实现方式,具体的,该方法可以包括如下步骤:401、获取签名端的私钥,并根据私钥和签名端对应的第二随机数,生成签名端对应的第二签名值。
71.402、将多个环成员各自对应的第二随机数确定为多个环成员各自对应的第二签名值。
72.在本发明实施例中,分别为群集合中的各个环成员生成与之对应的第二签名值。其中,多个环成员和签名端采用不同的生成方法。首先,获取签名端的私钥,并根据私钥和签名端对应的第二随机数,生成签名端对应的第二签名值。再将多个环成员各自对应的第二随机数确定为多个环成员各自对应的第二签名值。
73.在一可选实施例中,根据私钥和签名端对应的第二随机数,生成签名端对应的第二签名值的具体实现过程可以包括:获取签名端对应的第一签名值;根据签名端对应的第二随机数、私钥、以及签名端对应的第一签名值,生成签名端对应的第二签名值。
74.具体的,获取签名端对应的第一签名值与私钥的第四乘积值,确定签名端对应的第二随机数与第四乘积值的差值,并将该差值确定为签名端对应的第二签名值。例如,假设签名端对应的第一签名值为,私钥为,签名端对应的第二随机数为,多个环成员各自对应的第二随机数为,。获取签名端对应的第一签名值与私钥的第四乘积值为,获取第四乘积值与签名端对应的第二随机数的差值为,并将该差值确定为签名端对应的第二签名值,即=。接着,将多个环成员各自对应的第二随机数确定为多个环成员各自对应的第二签名值,即=。
75.本发明实施例,通过获取签名端的私钥,并根据私钥和签名端对应的第二随机数,生成签名端对应的第二签名值,将多个环成员各自对应的第二随机数确定为多个环成员各自对应的第二签名值。这样可以将签名端所对应的第二签名值隐藏在多个环成员对应的第二签名值中。
76.在实际应用中,对于一个目标环签名,通常还需要验证该目标环签名的真实性。具体的,签名端在生成目标环签名之后,将目标环签名发送至验证端,验证端以通过公钥集合中的多个公钥验证目标环签名的真实性。结合图5对其具体实现方式进行示例性说明。
77.图5为本发明实施例的另一种环签名方法的流程示意图;参考附图5所示,本实施例提供了一种环签名方法,该方法的执行主体可以为验证端,可以理解的是,该验证端设备可以实现为软件、或者软件和硬件的组合。具体的,该环签名方法可以包括:501、接收签名端发送的目标环签名和待签名消息,目标环签名中包括多个第一签名值和多个第二签名值。
78.502、获取公钥集合,公钥集合中包括多个环成员的公钥。
79.503、基于多个环成员的公钥、多个第一签名值、多个第二签名值、以及待签名消息,验证目标环签名是否为有效签名。
80.其中,目标环签名中包括多个第一签名值和多个第二签名值。并且,目标环签名是签名端基于上述任一实施例中所述的方法生成的,在此不再赘述。当签名端生成目标环签
名之后,可以将生成的目标环签名发送至验证端,验证端在接收到签名端发送的目标环签名和待签名消息之后,获取公钥集合。公钥集合中包括多个环成员的公钥。需要注意的是:这里的多个环成员和上述各个实施例中的多个环成员是有区别的,这里的多个环成员是指环集合中所有的环成员,若环集合中包括签名端,则多个环成员的公钥中包括签名端所对应的公钥,若环集合中不包括签名端,则多个环成员的公钥中不包括签名端所对应的公钥。
81.在获取到公钥集合中的多个环成员的公钥之后,基于多个环成员的公钥、多个第一签名值、多个第二签名值以及待签名消息,验证目标环签名是否为有效签名。
82.具体的,基于多个环成员的公钥、多个第一签名值、多个第二签名值以及待签名消息,验证目标环签名是否为有效签名的实现方式可以包括:根据多个第一签名值、多个第二签名值以及多个环成员各自对应的公钥,生成多个第二临时公钥;根据多个第二临时公钥和待签名消息、以及目标环签名中的身份证明,确定目标环签名是否为有效签名。
83.另外,在实际应用中,签名端在生成目标环签名之后,在很多场景中,都需要在事后证明该签名端为目标环签名所对应的签发者。具体的,基于签名端的身份标识、目标环签名以及待签名消息,生成签名证据,并将签名证据发送至验证端,以使得验证端基于签名证据验证目标环签名为有效签名时,根据签名证据中的身份标识对签名端的身份进行验证。为了便于理解验证端对目标环签名有效性以及身份认证的实现过程,结合图6对验证端所执行的过程进行示例性说明。
84.图6为本发明实施例的另一种环签名方法的流程示意图;参考附图5所示,本实施例提供了一种环签名方法,该方法的执行主体可以为验证端,可以理解的是,该验证端设备可以实现为软件、或者软件和硬件的组合。具体的,该环签名方法可以包括:601、接收签名端发送的签名证据,签名证据中包括签名端的身份标识和目标环签名。
85.602、基于签名证据验证目标环签名是否为有效签名。
86.603、若目标环签名为有效签名,则根据签名证据中的身份标识对签名端的身份进行验证。
87.当验证端接收到签名端发送的签名证据之后,首先基于签名端发送的签名证据验证该目标环签名的有效性。其中,签名证据中包括签名端的身份标识和目标环签名。目标环签名是基于上述实施例所提供的环签名方法生成的,并且目标环签名中包括签名端的身份证明、多个环成员和签名端各自对应的第一签名值、多个环成员和签名端各自对应的第二签名值。
88.可选地,基于签名证据验证目标环签名是否为有效签名的具体实现方式可以包括:获取公钥集合,公钥集合中包括签名端的公钥和多个环成员的公钥;根据多个环成员和签名端各自对应的第一签名值、多个环成员和签名端各自对应的第二签名值以及多个环成员和签名端各自对应的公钥,生成多个环成员和签名端各自对应的第二临时公钥;根据多个第二临时公钥和待签名消息、以及身份证明,确定目标环签名是否为有效签名。
89.在一可选实施例中,生成多个环成员和签名端各自对应的第二临时公钥的具体实现过程可以包括:分别获取多个环成员和签名端各自对应的第一签名值与多个环成员和签名端各自对应的公钥的第五乘积值,分别确定多个环成员和签名端各自对应的第二签名值与椭圆曲线基点的第六乘积值,分别获取多个环成员和签名端各自对应的第五乘积值与多
个环成员和签名端各自对应的第六乘积值的和值,并该多个环成员和签名端各自对应的和值确定为多个环成员和签名端各自对应的第二临时公钥。
90.例如,假设目标环签名为,多个环成员和签名端各自对应的第一签名值为多个环成员和签名端各自对应的第二签名值为,多个环成员和签名端各自对应的公钥为,椭圆曲线基点为。首先,获取多个环成员和签名端各自对应的第一签名值与多个环成员和签名端各自对应的公钥的第五乘积值分别为,。而后,确定多个环成员和签名端各自对应的第二签名值与椭圆曲线基点的第六乘积值分别为,。接着,获取多个环成员和签名端各自对应的第五乘积值与多个环成员和签名端各自对应的第六乘积值的和值分别为,。最后将多个环成员和签名端各自对应的和值确定为多个环成员和签名端各自对应的第二临时公钥,即。
91.在生成多个环成员和签名端各自对应的第二临时公钥之后,根据多个第二临时公钥和待签名消息、以及身份证明,确定目标环签名是否为有效签名。在一可选实施例中,签名证据中还可以包括待签名消息,根据多个第二临时公钥和待签名消息、以及身份证明,确定目标环签名是否为有效签名的具体实现过程可以包括:获取多个第一签名值的和值;根据多个第二临时公钥、待签名消息以及身份证明,确定待签名消息对应的哈希值;若哈希值等于和值,则目标环签名为有效签名。其中,可以利用预设的哈希函数,对多个第二临时公钥、待签名消息以及身份证明进行计算,以获得待签名消息对应的哈希值。
92.具体应用时,假设目标环签名中的多个第一签名值为待签名消息为,身份证明为,多个第二临时公钥为,。利用预设的哈希函数,对多个第二临时公钥、待签名消息以及身份证明进行计算,以获得待签名消息对应的哈希值为,获取多个第一签名值的和值为,若,则验证成功,该目标环签名为有效环签名。
93.若在验证的过程中确定该目标环签名不是有效签名,则结束验证,不需要再对目标环签名的身份进行验证。若验证出目标环签名为有效签名,则根据签名证据中的身份标识对签名端的身份进行验证。
94.可选地,若目标环签名中的身份证明为一哈希值,即时,那么根据签名证据中的身份标识对签名端的身份进行验证的具体实现方式可以包括:确定身份标识对应的哈希值;根据哈希值和目标环签名中的身份证明,确定签名端是否为目标环签名所对应的签发者。例如:签名证据中的身份标识为,确定身份标识对应的哈希值为,若该哈希值与目标环签名中的身份证明相等,则确定该签名端为待签名消
息所对应的签发者,这样不仅可以确定目标环签名所对应的签发者,同时也无法泄露签名端所对应的具体身份信息。
95.本发明实施例中,通过基于签名证据验证目标环签名是否为有效签名,并且若目标环签名为有效签名,则根据签名证据中的身份标识对签名端的身份进行验证,这样不仅可以确定目标环签名所对应的签发者,同时也无法泄露签名端所对应的具体身份信息。
96.本实施例中未展开描述的相关内容,可以参考前述实施例中的相关说明,在此不赘述。
97.上述实施例介绍了一种目标环签名中的身份认证为时,验证端对目标环签名的验证的具体过程。另外,在实际应用中,若目标环签名中的身份认证为时,签名端和验证端之间可以通过非交互式零知识证明方法,对签名端的身份进行验证。具体的,签名端首先选择一个第三随机数,根据第三随机数和椭圆曲线基点,确定验证公钥,即。然后,利用预设的哈希函数,计算身份证明和验证公钥所对应的哈希值。
98.而后,基于第三随机数、该哈希值、以及签名端的身份标识,确定验证证据。可选地,获取该哈希值与签名端的身份标识的第七乘积值,获取第七乘积值与第三随机数的和值,并将该和值确定为验证证据。例如,获取该哈希值与签名端的身份标识的第七乘积值为,获取第七乘积值与第三随机数的和值为,并将该和值确定为验证证据,即。
99.接着,基于验证公钥、验证证据、目标环签名以及待签名消息,生成签名证据。例如,签名证据为。将签名证据发送至验证端,以使得验证端验证目标环签名,若目标环签名为有效签名时,对签名端的身份进行验证。
100.具体的,验证端接收到签名端发送的签名证据之后,验证端获取公钥集合,公钥集合中包括签名端的公钥和多个环成员的公钥。根据多个环成员和签名端各自对应的第一签名值、多个环成员和签名端各自对应的第二签名值以及多个环成员和签名端各自对应的公钥,生成多个环成员和签名端各自对应的第二临时公钥。根据多个第二临时公钥和待签名消息、以及身份证明,确定目标环签名是否为有效签名。
101.若验证出目标环签名为有效签名之后,根据签名证据中的验证公钥和目标环签名中的身份证明,确定哈希值。并根据该哈希值、验证公钥、身份证明、以及验证证据,验证该签名端是否为目标环签名所对应的签发者。可选地,利用预设函数,确定验证公钥和身份证明所对应的哈希值。例如,验证公钥和身份证明所对应的哈希值为。接着,确定该哈希值与身份证明的第八乘积值为,确定验证公钥与第八乘积值的和值为。获取验证证据与椭圆曲线基点的第九乘积值为,并根据第九乘积值和该和值,确定该签名端是否为目标环签名所对应的签发者。例如,验证是否成立。若成立,则认可该证据来源于的签发者,即该签名端为目标环签名的签发者;否则
退出。
102.本实施例中未展开描述的相关内容,可以参考前述实施例中的相关说明,在此不赘述。
103.以下将详细描述本发明的一个或多个实施例的环签名装置。本领域技术人员可以理解,这些装置均可使用市售的硬件组件通过本方案所教导的步骤进行配置来构成。
104.图7为本发明实施例提供的一种环签名装置的结构示意图,该装置位于一签名端设备,如图7所示,该装置包括:获取模块11、确定模块12、第一生成模块13、第二生成模块14、第三生成模块15、签名模块16。
105.获取模块11,用于获取公钥集合和待签名消息,所述公钥集合中包括多个环成员的公钥。
106.确定模块12,用于确定所述签名端的身份证明。
107.第一生成模块13,用于生成所述多个环成员各自对应的第一随机数,以及生成所述多个环成员和所述签名端各自对应的第二随机数。
108.第二生成模块14,用于根据所述多个环成员各自对应的第一随机数、所述多个环成员的公钥以及所述待签名消息,生成所述多个环成员和所述签名端各自对应的第一签名值。
109.第三生成模块15,用于根据所述多个环成员和所述签名端各自对应的第二随机数,生成所述多个环成员和所述签名端各自对应的第二签名值。
110.签名模块16,用于根据所述身份证明、多个第一签名值以及多个第二签名值,生成所述待签名消息所对应的目标环签名。
111.可选地,所述确定模块12具体可以用于:确定所述签名端的身份标识,所述身份标识包括随机选择的比特串;确定所述身份标识对应的哈希值;将所述哈希值确定为所述签名端的身份证明。
112.可选地,所述装置还可以包括第四生成模块,具体可以用于:根据所述多个环成员各自对应的第一随机数、所述多个环成员和所述签名端各自对应的第二随机数以及所述多个环成员对应的公钥,生成所述多个环成员和所述签名端各自对应的第一临时公钥;根据多个第一临时公钥、所述待签名消息、以及所述签名端的身份证明,生成消息签名值。
113.可选地,所述第二生成模块14具体可以用于:将所述多个环成员各自对应的第一随机数确定为所述多个环成员各自对应的第一签名值;获取所述多个环成员各自对应的第一签名值和所述消息签名值,根据所述多个环成员各自对应的第一签名值和所述消息签名值,生成所述签名端对应的第一签名值。
114.可选地,所述第三生成模块15具体可以用于:获取所述签名端的私钥,并根据所述私钥和所述签名端对应的第二随机数,生成所述签名端对应的第二签名值;将所述多个环成员各自对应的第二随机数确定为所述多个环成员各自对应的第二签名值。
115.可选地,所述第三生成模块15具体还可以用于:获取签名端对应的第一签名值;根据所述签名端对应的第一签名值、所述签名端对应的第二随机数以及所述私钥,生成所述签名端对应的第二签名值。
116.可选地,所述装置还可以包括发送模块,具体可以用于:基于所述签名端的身份标识、目标环签名以及所述待签名消息,生成签名证据;将所述签名证据发送至验证端,以使
得所述验证端基于所述签名证据验证所述目标环签名为有效签名时,根据所述签名证据中的身份标识对所述签名端的身份进行验证。
117.图7所示装置可以执行前述实施例中签名端设备执行的步骤,详细的执行过程和技术效果参见前述实施例中的描述,在此不再赘述。
118.在一个可能的设计中,上述图7所示环签名装置的结构可实现为一电子设备,如图8所示,该电子设备可以包括:第一处理器21、第一存储器22、第一通信接口23。其中,第一存储器22上存储有可执行代码,当所述可执行代码被第一处理器21执行时,使第一处理器21至少可以实现如前述实施例中签名端设备执行的步骤。
119.另外,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器至少可以实现如前述实施例中提供的环签名方法。
120.图9为本发明实施例提供的一种环签名装置的结构示意图,该装置位于验证端设备,如图9所示,该装置包括:接收模块31、验证模块32、确认模块33。
121.接收模块31,用于接收签名端发送的签名证据,所述签名证据中包括签名端的身份标识和目标环签名,所述目标环签名是按如上述中任一项所述的环签名方法得到的。
122.验证模块32,用于基于所述签名证据验证所述目标环签名是否为有效签名。
123.确认模块33,用于若所述目标环签名为有效签名,则根据所述签名证据中的身份标识对所述签名端的身份进行验证。
124.可选地,所述验证模块32具体可以用于:获取公钥集合,所述公钥集合中包括签名端的公钥和多个环成员的公钥;根据多个环成员和所述签名端各自对应的第一签名值、多个环成员和所述签名端各自对应的第二签名值、以及多个环成员和所述签名端各自对应的公钥,生成多个环成员和所述签名端各自对应的第二临时公钥;根据多个第二临时公钥和待签名消息、以及身份证明,确定所述目标环签名是否为有效签名。
125.可选地,所述验证模块32具体还可以用于:获取多个第一签名值的和值;根据多个第二临时公钥、待签名消息以及身份证明,确定所述待签名消息对应的哈希值;若所述哈希值等于所述和值,则所述目标环签名为有效签名。
126.可选地,所述确认模块33具体可以用于:确定所述身份标识对应的哈希值;根据所述哈希值和所述身份标识,确定所述签名端是否为所述目标环签名所对应的签发者。
127.图9所示装置可以执行前述实施例中验证端设备执行的步骤,详细的执行过程和技术效果参见前述实施例中的描述,在此不再赘述。
128.在一个可能的设计中,上述图9所示环签名装置的结构可实现为一电子设备,如图10所示,该设备可以包括:第二处理器41、第二存储器42、第二通信接口43。其中,第二存储器42上存储有可执行代码,当所述可执行代码被第二处理器41执行时,使第二处理器41至少可以实现如前述实施例中验证端设备执行的步骤。
129.另外,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被设备的处理器执行时,使所述处理器至少可以实现如前述实施例中提供的环签名方法。
130.以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的。可以根据实际的需要选择其中的部分或者全部模块来
实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
131.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以计算机产品的形式体现出来,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
132.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
技术特征:
1.一种环签名方法,其特征在于,应用于签名端,包括:获取公钥集合和待签名消息,所述公钥集合中包括多个环成员的公钥;确定所述签名端的身份证明;生成所述多个环成员各自对应的第一随机数,以及生成所述多个环成员和所述签名端各自对应的第二随机数;根据所述多个环成员各自对应的第一随机数、所述多个环成员的公钥以及所述待签名消息,生成所述多个环成员和所述签名端各自对应的第一签名值;根据所述多个环成员和所述签名端各自对应的第二随机数,生成所述多个环成员和所述签名端各自对应的第二签名值;根据所述身份证明、多个第一签名值以及多个第二签名值,生成所述待签名消息所对应的目标环签名。2.根据权利要求1所述的方法,其特征在于,所述确定所述签名端的身份证明,包括:确定所述签名端的身份标识,所述身份标识包括随机选择的比特串;确定所述身份标识对应的哈希值;将所述哈希值确定为所述签名端的身份证明。3.根据权利要求1所述的方法,其特征在于,所述生成所述多个环成员和所述签名端各自对应的第一签名值之前,所述方法还包括:根据所述多个环成员各自对应的第一随机数、所述多个环成员和所述签名端各自对应的第二随机数以及所述多个环成员对应的公钥,生成所述多个环成员和所述签名端各自对应的第一临时公钥;根据多个第一临时公钥、所述待签名消息、以及所述签名端的身份证明,生成消息签名值。4.根据权利要求3所述的方法,其特征在于,所述根据所述多个环成员各自对应的第一随机数、所述多个环成员的公钥以及所述待签名消息,生成所述多个环成员和所述签名端各自对应的第一签名值,包括:将所述多个环成员各自对应的第一随机数确定为所述多个环成员各自对应的第一签名值;获取所述多个环成员各自对应的第一签名值和所述消息签名值,根据所述多个环成员各自对应的第一签名值和所述消息签名值,生成所述签名端对应的第一签名值。5.根据权利要求3所述的方法,其特征在于,所述根据所述多个环成员和所述签名端各自对应的第二随机数,生成所述多个环成员和所述签名端各自对应的第二签名值,包括:获取所述签名端的私钥,并根据所述私钥和所述签名端对应的第二随机数,生成所述签名端对应的第二签名值;将所述多个环成员各自对应的第二随机数确定为所述多个环成员各自对应的第二签名值。6.根据权利要求5所述的方法,其特征在于,所述根据所述私钥和所述签名端对应的第二随机数,生成所述签名端对应的第二签名值,包括:获取签名端对应的第一签名值;根据所述签名端对应的第一签名值、所述签名端对应的第二随机数以及所述私钥,生
成所述签名端对应的第二签名值。7.根据权利要求2所述的方法,其特征在于,所述方法还包括:基于所述签名端的身份标识、目标环签名以及所述待签名消息,生成签名证据;将所述签名证据发送至验证端,以使得所述验证端基于所述签名证据验证所述目标环签名为有效签名时,根据所述签名证据中的身份标识对所述签名端的身份进行验证。8.一种环签名方法,其特征在于,应用于验证端,包括:接收签名端发送的签名证据,所述签名证据中包括签名端的身份标识和目标环签名,所述目标环签名是按如权利要求1至6中任一项所述的环签名方法得到的;基于所述签名证据验证所述目标环签名是否为有效签名;若所述目标环签名为有效签名,则根据所述签名证据中的身份标识对所述签名端的身份进行验证。9.根据权利要求8所述的方法,其特征在于,所述基于所述签名证据验证所述目标环签名是否为有效签名,包括:获取公钥集合,所述公钥集合中包括签名端的公钥和多个环成员的公钥;根据多个环成员和所述签名端各自对应的第一签名值、多个环成员和所述签名端各自对应的第二签名值、以及多个环成员和所述签名端各自对应的公钥,生成多个环成员和所述签名端各自对应的第二临时公钥;根据多个第二临时公钥和待签名消息、以及身份证明,确定所述目标环签名是否为有效签名。10.根据权利要求9所述的方法,其特征在于,所述签名证据中包括待签名消息,所述根据多个第二临时公钥和待签名消息、以及身份证明,确定所述目标环签名是否为有效签名,包括:获取多个第一签名值的和值;根据多个第二临时公钥、待签名消息以及身份证明,确定所述待签名消息对应的哈希值;若所述哈希值等于所述和值,则所述目标环签名为有效签名。11.根据权利要求8所述的方法,其特征在于,所述根据所述签名证据中的身份标识对所述签名端的身份进行验证,包括:确定所述身份标识对应的哈希值;根据所述哈希值和所述目标环签名中的身份证明,确定所述签名端是否为所述目标环签名所对应的签发者。12.一种电子设备,其特征在于,包括:存储器、处理器、通信接口;其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求1至7或8至11中任一项所述的环签名方法。
技术总结
本发明实施例提供一种环签名方法和设备,方法包括:获取公钥集合;确定签名端的身份证明;生成多个环成员各自对应的第一随机数以及生成多个环成员和签名端各自对应的第二随机数;根据多个环成员各自对应的第一随机数、多个环成员的公钥以及待签名消息,生成多个环成员和签名端各自对应的第一签名值;根据多个环成员和签名端各自对应的第二随机数,生成多个环成员和签名端各自对应的第二签名值;根据身份证明、多个第一签名值以及多个第二签名值,生成目标环签名。在上述方案中,由于环签名中携带签名端的身份证明,并且身份证明中不携带签名端的身份信息,那么可以在事后证明签名端为环签名的签发者,同时又不泄露该签名端的具体身份信息。体身份信息。体身份信息。
技术研发人员:张宇 王翊心 张庆勇
受保护的技术使用者:北京信安世纪科技股份有限公司
技术研发日:2023.07.11
技术公布日:2023/8/9
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
上一篇:一种水利工程用污水过滤装置的制作方法 下一篇:电池、电子设备及极性引出方法与流程
