投票结果签名方法、验证方法、装置、设备、介质及产品与流程
未命名
07-22
阅读:49
评论:0
1.本技术涉及信息安全领域,尤其涉及一种投票结果签名方法、验证方法、装置、设备、介质及产品。
背景技术:
2.随着信息技术的发展,电子投票在各行各业中得到了广泛的应用。电子投票通过数字签名的方式来验证投票者的身份。投票者在投票后生成数字签名,与投票结果一同发送给投票发起者,投票发起者接收投票结果和投票者的数字签名,并通过对数字签名进行验证来确认投票者的投票资格和投票结果的完整性。
3.在上述场景中,传统的数字签名在用于验证投票者的投票资格时,无法使投票人匿名。在不匿名投票过程中,投票人可能无法按照自身意愿进行投票,进而影响投票结果的真实准确性。而现有的能够匿名的签名算法,又因过于复杂,而使得签名在被验证时需要进行大量计算,不适用于大规模投票。
4.综上,现有技术中的签名算法在用于大规模匿名投票时,无法兼顾匿名性和快速验证。
技术实现要素:
5.本技术提供一种投票结果签名方法、验证方法、装置、设备、介质及产品,用以解决现有技术的中签名算法在用于大规模匿名投票时,无法兼顾匿名性和快速验证的问题。
6.根据本技术的第一方面,提供一种投票结果签名方法,应用于投票结果签名设备,包括:
7.获取投票结果、真实投票者的真实密钥信息、以及预设数量c的潜在投票者的潜在密钥信息;各潜在投票者与真实投票者不同;所述真实密钥信息包括真实随机公钥、真实随机私钥和真实身份公钥;所述潜在密钥信息包括潜在随机公钥、潜在随机私钥、潜在身份公钥和潜在随机数;各潜在身份公钥与真实身份公钥均相同,且是根据预设保密随机数和第一预设q阶乘法循环群g1的生成元确定的;g1与第二预设q阶乘法循环群g2存在双线性映射e:g1×
g1→
g2;真实随机公钥和各潜在随机公钥均属于g1,预设保密随机数、真实随机私钥、潜在随机私钥和潜在随机数均属于q阶有限域zq*;
8.根据各潜在随机数和各潜在身份公钥确定各潜在投票者的潜在签名,各潜在签名属于g1;
9.根据投票结果、真实随机私钥、真实身份公钥、各潜在随机私钥和各潜在随机数确定真实投票者的真实签名;
10.将真实签名和各潜在签名组合生成投票结果的环签名,投票结果的环签名包括c+1个元素,将真实随机公钥和各潜在随机公钥组合生成所述环签名的验证公钥,所述验证公钥包括c+1个元素;
11.将投票结果、投票结果的环签名和所述环签名的验证公钥发送给投票结果验证设
备,以使投票结果验证设备根据投票结果的环签名、所述验证公钥和预存的双线性映射e:g1×
g1→
g2对投票结果进行验证。
12.根据本技术的第二方面,提供一种投票结果验证设备,应用于投票结果验证设备,包括:
13.接收投票结果签名设备发送的投票结果、投票结果的环签名和所述环签名的验证公钥;所述环签名包括c+1个元素,且包括的各元素均属于g1;所述验证公钥包括c+1个元素,且包括的各元素均属于g1;g1与第二预设q阶乘法循环群g2存在预存的双线性映射e:g1×
g1→
g2;
14.根据投票结果的环签名、所述验证公钥和预存的双线性映射e:g1×
g1→
g2对投票结果进行验证。
15.根据本技术的第三方面,提供一种投票结果签名装置,包括:
16.获取模块,用于获取投票结果、真实投票者的真实密钥信息、以及预设数量c的潜在投票者的潜在密钥信息;各潜在投票者与真实投票者不同;所述真实密钥信息包括真实随机公钥、真实随机私钥和真实身份公钥;所述潜在密钥信息包括潜在随机公钥、潜在随机私钥、潜在身份公钥和潜在随机数;各潜在身份公钥与真实身份公钥均相同,且是根据预设保密随机数和第一预设q阶乘法循环群g1的生成元确定的;g1与第二预设q阶乘法循环群g2存在双线性映射e:g1×
g1→
g2;真实随机公钥和各潜在随机公钥均属于g1,预设保密随机数、真实随机私钥、潜在随机私钥和潜在随机数均属于q阶有限域
17.第一确定模块,用于根据各潜在随机数和各潜在身份公钥确定各潜在投票者的潜在签名,各潜在签名属于g1;
18.第二确定模块,用于根据投票结果、真实随机私钥、真实身份公钥、各潜在随机私钥和各潜在随机数确定真实投票者的真实签名;
19.生成模块,用于将真实签名和各潜在签名组合生成投票结果的环签名,投票结果的环签名包括c+1个元素,将真实随机公钥和各潜在随机公钥组合生成所述环签名的验证公钥,所述验证公钥包括c+1个元素;
20.发送模块,用于将投票结果、投票结果的环签名和所述环签名的验证公钥发送给投票结果验证设备,以使投票结果验证设备根据投票结果的环签名、所述验证公钥和预存的双线性映射e:g1×
g1→
g2对投票结果进行验证。
21.根据本技术的第四方面,提供一种投票结果验证装置,包括:
22.接收模块,用于接收投票结果签名设备发送的投票结果、投票结果的环签名和所述环签名的验证公钥;所述环签名包括c+1个元素,且包括的各元素均属于g1;所述验证公钥包括c+1个元素,且包括的各元素均属于g1;g1与第二预设q阶乘法循环群g2存在预存的双线性映射e:g1×
g1→
g2;
23.验证模块,用于根据投票结果的环签名、所述验证公钥和预存的双线性映射e:g1×
g1→
g2对投票结果进行验证。
24.根据本技术的第五方面,提供一种投票结果签名设备,包括:存储器、处理器和收发器;
25.所述存储器、所述处理器和所述收发器电路互连;
26.所述存储器存储计算机执行指令;
27.所述收发器用于收发数据;
28.所述处理器执行所述存储器存储的计算机执行指令,以实现如第一方面中所述的方法。
29.根据本技术的第六方面,提供一种投票结果验证设备,包括:存储器、处理器和收发器;
30.所述存储器、所述处理器和所述收发器电路互连;
31.所述存储器存储计算机执行指令;
32.所述收发器用于收发数据;
33.所述处理器执行所述存储器存储的计算机执行指令,以实现如第二方面中所述的方法。
34.根据本技术的第七方面,提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如第一方面或第二方面中所述的方法。
35.根据本技术的第八方面,提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如第一方面或第二方面中所述的方法。
36.本技术提供的投票结果签名方法、验证方法、装置、设备、介质及产品,通过获取投票结果、真实投票者的真实密钥信息、以及预设数量c的潜在投票者的潜在密钥信息;各潜在投票者与真实投票者不同;所述真实密钥信息包括真实随机公钥、真实随机私钥和真实身份公钥;所述潜在密钥信息包括潜在随机公钥、潜在随机私钥、潜在身份公钥和潜在随机数;各潜在身份公钥与真实身份公钥均相同,且是根据预设保密随机数和第一预设q阶乘法循环群g1的生成元确定的;g1与第二预设q阶乘法循环群g2存在双线性映射e:g1×
g1→
g2;真实随机公钥和各潜在随机公钥均属于g1,预设保密随机数、真实随机私钥、潜在随机私钥和潜在随机数均属于q阶有限域根据各潜在随机数和各潜在身份公钥确定各潜在投票者的潜在签名,各潜在签名属于g1;根据投票结果、真实随机私钥、真实身份公钥、各潜在随机私钥和各潜在随机数确定真实投票者的真实签名;将真实签名和各潜在签名组合生成投票结果的环签名,投票结果的环签名包括c+1个元素,将真实随机公钥和各潜在随机公钥组合生成所述环签名的验证公钥,所述验证公钥包括c+1个元素;将投票结果、投票结果的环签名和所述环签名的验证公钥发送给投票结果验证设备,以使投票结果验证设备根据投票结果的环签名、所述验证公钥和预存的双线性映射e:g1×
g1→
g2对投票结果进行验证。由于真实签名是根据投票结果、真实随机私钥、真实身份公钥、各潜在随机私钥和各潜在随机私钥确定的,潜在签名是根据各潜在身份公钥和潜在随机数确定的,因此,在将真实签名和各潜在签名组合生成投票结果的环签名之后,基于环签名的无条件匿名性,可以根据环签名、验证公钥对投票结果进行验证,而无法确定出真实投票者。由于g1和g2为q阶乘法循环群,潜在签名、真实随机公钥和各潜在随机公钥属于g1,而g1和g2存在双线性映射e:g1×
g1→
g2,因此,可以根据预存的双线性映射e:g1×
g1→
g2对投票结果进行快速验证。
附图说明
37.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。
38.图1是根据本技术实施例提供的应用场景对应的网络架构图;
39.图2是根据本技术实施例一提供的投票结果签名方法的流程示意图;
40.图3是根据本技术实施例二提供的投票结果验证方法的流程示意图;
41.图4是根据本技术实施例三提供的投票结果签名装置的结构示意图;
42.图5是根据本技术实施例四提供的投票结果验证装置的结构示意图;
43.图6是根据本技术实施例五提供的投票结果签名设备的结构示意图;
44.图7是根据本技术实施例六提供的投票结果验证设备的结构示意图。
45.通过上述附图,已示出本技术明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本技术构思的范围,而是通过参考特定实施例为本领域技术人员说明本技术的概念。
具体实施方式
46.首先对本技术所涉及的名词进行解释。
47.有限域:有限域的特征数是某一素数p,是仅含有限个元素的域。域是一个乘法可交换的环。如果一个环中除零元素以外的其他元素都能进行除法运算,那这个环就构成一个域。有限域中的数字计算规则满足封闭性,结合律,交换律等,结构上的运算可分为乘法结构和加法结构。
48.哈希函数:又称散列函数,是把任意长度的输入通过散列算法变换成固定长度的输出,输出值即为输入的散列值,散列值也称为哈希值或数字摘要。哈希函数是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数,因哈希函数具有不可逆性,常被用于数字签名。
49.以下对本技术所涉及的现有技术进行详细说明及分析。
50.电子投票是各行各业中重要的业务优化方式之一。企业通过电子投票的方式收集信息,不仅能够保护企业资产,防止内部数据泄露,还能够提高业务优化效率,助力企业信息化发展。电子投票需要具有高质量的数据传输效率,还需要能够保证数字签名验证的完整性以及投票人的匿名性,保障投票人的个人权益及隐私安全。
51.随着企业内部员工数量的增加,投票人的数量也随之增加,传统的数字签名方法,在存在大量的消息发送者时,无法快速地生成数字签名,也无法快速的对数字签名进行验证。在投票意愿复杂的情况下,低效率的数据验证方式还会影响对投票结果进行筛选和管理进度。并且,传统的数字签名方式,可以根据后台管理,按照投票人的投票结果来查找具体投票人的信息,无法使投票人的匿名。
52.综上,现有技术中签名算法在用于大规模匿名投票时,无法兼顾匿名性和快速验证。
53.所以,在面对现有技术中的问题时,发明人通过创造性研究,为了能够在大规模投票时,兼顾投票结果的匿名性和对投票结果的快速验证,可以采用基于环签名的数字签名方式,将投票人等同于环集合中的成员,对投票结果进行环签名生成属于投票人自己的合
法投票结果,通过环签名的特性,保证投票人的匿名性。同时,为了提高对于投票结果的签名效率和验证效率,就需要降低对投票结果进行签名和验证时的计算复杂度,因此,将乘法循环群的特性和双线性映射结合,使得环签名的每一个元素和验证公钥的每一个元素均属于乘法循环群g1,g1与乘法循环群g2存在双线性映射e:g1×
g1→
g2,就可以通过双线性映射对投票结果的环签名进行快速验证。
54.综上,发明人提出本技术的技术方案,通过获取投票结果、真实投票者的真实密钥信息、以及预设数量c的潜在投票者的潜在密钥信息;各潜在投票者与真实投票者不同;真实密钥信息包括真实随机公钥、真实随机私钥和真实身份公钥;潜在密钥信息包括潜在随机公钥、潜在随机私钥、潜在身份公钥和潜在随机数;各潜在身份公钥与真实身份公钥均相同,且是根据预设保密随机数和第一预设q阶乘法循环群g1的生成元确定的;g1与第二预设q阶乘法循环群g2存在双线性映射e:g1×
g1→
g2;真实随机公钥和各潜在随机公钥均属于g1,预设保密随机数、真实随机私钥、潜在随机私钥和潜在随机数均属于q阶有限域根据各潜在随机数和各潜在身份公钥确定各潜在投票者的潜在签名,各潜在签名属于g1;根据投票结果、真实随机私钥、真实身份公钥、各潜在随机私钥和各潜在随机数确定真实投票者的真实签名;将真实签名和各潜在签名组合生成投票结果的环签名,投票结果的环签名包括c+1个元素,将真实随机公钥和各潜在随机公钥组合生成环签名的验证公钥,验证公钥包括c+1个元素;将投票结果、投票结果的环签名和环签名的验证公钥发送给投票结果验证设备,以使投票结果验证设备根据投票结果的环签名、验证公钥和预存的双线性映射e:g1×
g1→
g2对投票结果进行验证。由于真实签名是根据投票结果、真实随机私钥、真实身份公钥、各潜在随机私钥和各潜在随机私钥确定的,潜在签名是根据各潜在身份公钥和潜在随机数确定的,因此,在将真实签名和各潜在签名组合生成投票结果的环签名之后,基于环签名的无条件匿名性,可以根据环签名、验证公钥对投票结果进行验证,而无法确定出真实投票者。由于g1和g2为q阶乘法循环群,潜在签名、真实随机公钥和各潜在随机公钥属于g1,而g1和g2存在双线性映射e:g1×
g1→
g2,因此,可以根据预存的双线性映射e:g1×
g1→
g2对投票结果进行快速验证。
55.本技术提供的投票结果签名方法、验证方法、装置、设备、介质及产品,旨在解决现有技术的如上技术问题。下面以具体地实施例对本技术的技术方案以及本技术的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
56.下面将对本技术实施例提供的投票结果签名方法的网络架构和应用场景进行介绍。下面的描述涉及附图时,除非另有表示,不同附图中的相同数据表示相同或相似的要素。
57.图1是本技术实施例提供的投票结果签名方法的应用场景对应的网络架构图。如图1所示,本技术实施例提供的一种应用场景对应的网络架构中包括:投票结果签名设备10和投票结果验证设备11。
58.投票结果签名设备10上预先存储有第一预设q阶乘法循环群g1和多个待投票者的身份公钥。待投票者可以是企业的全体员工、企业的某部门的全体员工。真实投票者和潜在投票者均属于待投票者,g1与第二预设q阶乘法循环群g2存在双线性映射e:g1×
g1→
g2。
59.投票结果验证设备11上预先存储有g1与第二预设q阶乘法循环群g2存在的双线性映射e:g1×
g1→
g2。
60.真实投票者可以在投票结果签名设备10上进行投票,也可以在与投票结果签名设备10通信连接的投票设备12上进行投票,投票设备可以将真实投票者的投票结果发送给投票结果签名设备10。
61.投票结果签名设备10获取投票结果、真实投票者的真实密钥信息、以及预设数量c的潜在投票者的潜在密钥信息;各潜在投票者与真实投票者不同;真实密钥信息包括真实随机公钥、真实随机私钥和真实身份公钥;潜在密钥信息包括潜在随机公钥、潜在随机私钥、潜在身份公钥和潜在随机数;各潜在身份公钥与真实身份公钥均相同,且是根据预设保密随机数和g1的生成元确定的;真实随机公钥和各潜在随机公钥均属于g1,预设保密随机数、真实随机私钥、潜在随机私钥和潜在随机数均属于q阶有限域
62.投票结果签名设备10可以根据各潜在随机数和各潜在身份公钥确定各潜在投票者的潜在签名,各潜在签名属于g1;根据投票结果、真实随机私钥、真实身份公钥、各潜在随机私钥和各潜在随机数确定真实投票者的真实签名。
63.投票结果签名设备10将真实签名和各潜在签名组合生成投票结果的环签名,投票结果的环签名包括c+1个元素,将真实随机公钥和各潜在随机公钥组合生成环签名的验证公钥,验证公钥包括c+1个元素;将投票结果、投票结果的环签名和环签名的验证公钥发送给投票结果验证设备11,以使投票结果验证设备11根据投票结果的环签名、验证公钥和预存的双线性映射e:g1×
g1→
g2对投票结果进行验证。
64.投票结果验证设备11接收投票结果签名设备10发送的投票结果、投票结果的环签名和环签名的验证公钥;根据投票结果的环签名、验证公钥和预存的双线性映射e:g1×
g1→
g2对投票结果进行验证。
65.下面将结合附图,对本技术的实施例进行描述。以下实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。
66.实施例一
67.图2是根据本技术实施例一提供的投票结果签名方法的流程示意图。如图2所示,本技术的执行主体为投票结果签名装置,该投票结果签名装置位于投票结果签名设备中。本实施例提供的投票结果签名方法包括步骤201至步骤205。
68.步骤201,获取投票结果、真实投票者的真实密钥信息、以及预设数量c的潜在投票者的潜在密钥信息;各潜在投票者与真实投票者不同;真实密钥信息包括真实随机公钥、真实随机私钥和真实身份公钥;潜在密钥信息包括潜在随机公钥、潜在随机私钥、潜在身份公钥和潜在随机数;各潜在身份公钥与真实身份公钥均相同,且是根据预设保密随机数和第一预设q阶乘法循环群g1的生成元确定的;g1与第二预设q阶乘法循环群g2存在双线性映射e:g1×
g1→
g2;真实随机公钥和各潜在随机公钥均属于g1,预设保密随机数、真实随机私钥、潜在随机私钥和潜在随机数均属于q阶有限域
69.本实施例中,真实投票者的真实密钥信息还包括真实身份私钥,真实身份私钥是根据真实投票者的真实身份标识、第一预设哈希函数和预设保密随机数确定的。真实身份
标识ids是根据投票人身份信息生成的。
70.示例性地,投票者的身份标识可以包括投票者的姓名、性别、统一认证号、邮箱、电话、公司属地等。或者,投票者的身份标识可以与投票者的姓名、性别、统一认证号、邮箱、电话、公司属地等身份信息的具有映射关系。
71.第一预设哈希函数h1={0,1}*
→
g1,表示能够将任意长度字符串映射至g1。预设随机保密数β是预先从g1中选取的随机数,β是保密不公开、仅预先存储在各投票结果签名设备中的。
72.示例性地,真实身份私钥ds=qsβ,qsβ=h1(ids),qs∈g1。
73.本实施例中,真实投票者在进行投票时,可以通过真实身份标识ids或者预先得知的真实身份私钥进行身份验证,在真实投票者的身份通过验证之后,真实投票者真实投票者可以在投票设备或者投票结果签名设备中输入或选择投票结果,投票结果签名设备获取到真实投票者的投票结果。
74.可选地,潜在密钥信息还包括潜在投票者的潜在身份私钥,步骤201细化包括步骤301至步骤305。
75.步骤301,接收真实投票者输入的真实身份标识和投票结果。
76.本实施例中,真实投票者在投票结果签名设备输入真实身份标识ids,以进行身份验证。投票结果签名设备根据真实身份标识验证真实投票者的身份。在真实投票者的身份通过验证之后,真实投票者可以在投票结果签名设备中输入投票结果。投票结果签名设备接收真实投票者输入的投票结果。
77.步骤302,根据真实身份标识获取预设数量的潜在身份私钥;潜在身份私钥属于g1,且是根据潜在投票者的潜在身份标识、第一预设哈希函数和预设保密随机数确定的。
78.本实施例中,投票结果签名设备中预先存储有所有待投票者的身份标识,待投票者包括真实投票者。投票结果签名设备可以根据真实身份标识从待投票者中选取与真实身份标识不同的、预设数量的待投票者作为潜在投票者。
79.本实施例中,投票结果签名设备中可以预先存储有待投票者的身份标识与身份私钥的映射关系,进而从待投票者的身份标识与身份私钥的映射关系中获取的潜在投票者的身份私钥。
80.可选地,预设保密随机数β可以由密钥生成中心kgc从随机选取,kgc与投票结果签名设备通信连接。kgc在选取β之后,可以通过以下公式计算所有待投票者的身份公钥y:y=gβ。其中g为g1的生成元。kgc可以通过与投票结果签名设备的通信连接,将y发送给投票结果签名设备。kgc可以公开g1、g和y,仅对β进行保密。
81.步骤303,根据真实身份标识获取真实身份公钥和各潜在身份公钥。
82.本实施例中,所有待投票者的身份公钥相同,并且,可以预先存储在投票结果签名设备中。因此,真实身份公钥和各潜在身份公钥相同,投票结果签名设备可以直接获取预先存储的待投票者的身份公钥作为真实身份公钥和各潜在身份公钥。
83.步骤304,从随机选取真实随机私钥、潜在随机私钥和潜在随机数。
84.本实施例中,投票结果签名设备可以从随机选取真实随机私钥,以及各潜在投
票者的潜在随机私钥和潜在随机数。q为素数。
85.步骤305,根据真实随机私钥和生成元计算真实随机公钥,并根据各潜在随机私钥和生成元计算各潜在随机公钥。
86.本实施例中,第一预设q乘法循环群g1,以及g1的生成元g可以预先存储在投票结果签名设备中。也可以由投票结果签名设备与kgc通信获取。
87.可选地,步骤305中“根据真实随机私钥和生成元计算真实随机公钥”细化包括步骤401,“根据各潜在随机私钥和生成元计算各潜在随机公钥”细化包括步骤402。
88.步骤401,采用真实随机私钥对生成元进行幂运算,获得真实随机公钥。
89.步骤402,采用各潜在随机私钥对生成元进行幂运算,获得各潜在随机公钥。
90.本实施例中,真实随机私钥除了步骤401和步骤402的计算方法之外,还可以通过其它方法计算真实随机公钥和各潜在随机公钥,只需要使得真实随机公钥和各潜在随机公钥均属于g1即可,本实施例对此不做限定。
91.本实施例提供的投票结果签名方法,通过采用真实随机私钥对生成元进行幂运算,获得真实随机公钥,采用各潜在随机私钥对生成元进行幂运算,获得各潜在随机公钥,由于对g1的生成元进行幂运算,g1为乘法循环群,因此,可以在快速确定真实随机公钥和各潜在随机公钥的同时,保证真实随机公钥和各潜在随机公钥均属于g1。
92.本实施例提供的投票结果签名方法,通过接收真实投票者输入的真实身份标识和投票结果;根据真实身份标识获取预设数量的潜在身份私钥;潜在身份私钥属于g1,且是根据潜在投票者的潜在身份标识、第一预设哈希函数和预设保密随机数确定的;根据真实身份标识获取真实身份公钥和各潜在身份公钥;从随机选取真实随机私钥、潜在随机私钥和潜在随机数;根据真实随机私钥和生成元计算真实随机公钥,并根据各潜在随机私钥和生成元计算各潜在随机公钥。由于真实身份标识仅由投票结果签名设备获得,并且不参与计算真实签名,而真实随机私钥、潜在随机私钥和潜在随机数均从中随机选取,因此,投票结果验证设备无法根据投票结果的环签名确定真实投票者的身份。
93.步骤202,根据各潜在随机数和各潜在身份公钥确定各潜在投票者的潜在签名,各潜在签名属于g1。
94.本实施例中,各潜在签名可以由各潜在随机数对各潜在身份公钥进行幂运算获得。
95.可选地,步骤202细化包括步骤2021。
96.步骤2021,根据各潜在身份私钥、各潜在随机数和各潜在身份公钥计算各潜在签名。
97.可选地,步骤2021细化包括:
98.采用潜在随机数对潜在身份公钥进行幂运算,获得潜在身份公钥的第一幂运算值;
99.将潜在身份私钥与所述第一幂运算值的乘积,确定为潜在签名。
100.具体地,可以通过以下公式,计算各潜在签名σj:其中,dj
为潜在身份私钥,y为潜在身份公钥,aj潜在随机数。由于潜在签名者的数量为c,因此潜在签名的数量也为c,j表示潜在签名为c个潜在签名中的第j个,各潜在签名无顺序之分。
101.本实施例中,通过采用潜在随机数对潜在身份公钥进行幂运算,获得潜在身份公钥的第一幂运算值;将潜在身份私钥与所述第一幂运算值的乘积,确定为潜在签名。由于潜在身份私钥和潜在身份公钥均属于g1、潜在随机数属于zq*,因此,潜在签名属于g1,有利于简化后续验证签名时的计算量。
102.本实施例中,通过根据各潜在身份私钥、各潜在随机数和各潜在身份公钥计算各潜在签名,由于计算各潜在签名时还是用了各潜在身份私钥,因此,形成的潜在签名可以被验证是待投票者的签名,避免了环签名被冒充。
103.步骤203,根据投票结果、真实随机私钥、真实身份公钥、各潜在随机私钥和各潜在随机数确定真实投票者的真实签名。
104.可选地,步骤203细化包括步骤501至步骤502。
105.步骤501,采用第二预设哈希函数计算投票结果的哈希值h;第二预设哈希函数能够将任意长度字符串映射至g1。
106.本实施例中,由于投票结果可以存在多种情况,如数字、字符串等,而对通过结果进行验证的过程中还需要确定投票结果是否被篡改。第二预设哈希函数h2={0,1}*
→
g1,第二预设哈希函数能够将任意长度的字符串映射至g1。因此,通过第二预设哈希函数将投票结果映射至g1,就可以将投票结果的哈希值用于计算真实签名时,进而使得后续对签名进行验证时,可以确定投票结果的完整性,即,投票结果是否完整无误。
107.步骤502,采用潜在随机私钥对潜在身份私钥进行幂运算,获得预设数量的潜在身份私钥的第二幂运算值。
108.步骤503,采用潜在随机私钥和潜在随机数的乘积对真实身份公钥进行幂运算,获得预设数量的真实身份公钥的第三幂运算值;
109.步骤504,将预设数量的所述第二幂运算值和预设数量的所述第三幂运算值进行累乘运算,获得各所述第二幂运算值与各所述第三幂运算值的累乘值;
110.步骤505,将投票结果的哈希值与所述累乘值的商作为被开方数,将所述真实随机私钥作为根指数,进行开方运算,将开方运算的结果确定为所述真实签名。
111.具体地,步骤502至步骤505可以表示为以下公式;
112.其中,σs为真实签名dj为潜在身份私钥,y为真实身份公钥,xj为潜在随机私钥,aj为潜在随机数,xs为真实随机私钥。
113.本实施例中,也可以表示为:
114.115.本实施例中,由于dj、y、xj、aj、xs、h均属于g1,而真实签名对应的真实随机公钥因此,原理上,σ
sys
可以通过双线性映射消除xs,进而采用验证公钥对环签名进行验证时,能够计算出正确的结果。
116.本实施例中,通过计算真实签名,由于计算真实签名时仅涉及真实随机密钥,并且,dj为潜在身份私钥,因此,真实签名不会泄露真实投票者的身份信息,可以保证真实投票者的匿名性。
117.步骤204,将真实签名和各潜在签名组合生成投票结果的环签名,投票结果的环签名包括c+1个元素,将真实随机公钥和各潜在随机公钥组合生成环签名的验证公钥,验证公钥包括c+1个元素。
118.本实施例中,可以将真实签名和各潜在签名形成的集合作为投票结果的环签名,由于潜在签名的数量为c,真实签名的数量为1,因此,真是签名和各潜在签名形成的集合中,元素的数量为c+1。同时,为了使得投票结果验证设备能够验证投票结果是否有效,并且无法得知真实投票者,因此,将真实投票者和多个潜在投票者的随机公钥也形成集合,作为环签名的验证公钥。环签名和验证公钥中的多个元素无先后顺序。
119.步骤205,将投票结果、投票结果的环签名和环签名的验证公钥发送给投票结果验证设备,以使投票结果验证设备根据投票结果的环签名、验证公钥和预存的双线性映射e:g1×
g1→
g2对投票结果进行验证。
120.本实施例中,投票结果签名设备和投票结果验证设备通信连接,在投票结果签名设备完成对投票结果的环签名之后,将投票结果、投票结果的环签名和环签名的验证公钥发送给投票结果验证设备,投票结果验证设备可以通过环签名和环签名的验证公钥对投票结果是否为待投票者进行的投票进行验证,并且,在验证的同时无法得知真实投票人的身份信息。
121.本实施例中,投票结果签名方法采用乘法循环群生成公钥和私钥,有效保证了密钥的不可解性和密码算法的稳定性,也保证了投票结果的不可伪造性和数据完整性。同时,基于有限域和两个q阶乘法循环群生成签名和对签名进行验证,能够快速地验证投票结果的有效性,减少投票结果验证的计算复杂度,提高识别投票结果有效性的速度。
122.本实施例提供的投票结果签名方法,通过获取投票结果、真实投票者的真实密钥信息、以及预设数量c的潜在投票者的潜在密钥信息;各潜在投票者与真实投票者不同;真实密钥信息包括真实随机公钥、真实随机私钥和真实身份公钥;潜在密钥信息包括潜在随机公钥、潜在随机私钥、潜在身份公钥和潜在随机数;各潜在身份公钥与真实身份公钥均相同,且是根据预设保密随机数和第一预设q阶乘法循环群g1的生成元确定的;g1与第二预设q阶乘法循环群g2存在双线性映射e:g1×
g1→
g2;真实随机公钥和各潜在随机公钥均属于g1,预设保密随机数、真实随机私钥、潜在随机私钥和潜在随机数均属于q阶有限域根据各潜在随机数和各潜在身份公钥确定各潜在投票者的潜在签名,各潜在签名属于g1;根据投票结果、真实随机私钥、真实身份公钥、各潜在随机私钥和各潜在随机数确定真实投票者的真实签名;将真实签名和各潜在签名组合生成投票结果的环签名,投票结果的环签名包括c
+1个元素,将真实随机公钥和各潜在随机公钥组合生成环签名的验证公钥,验证公钥包括c+1个元素;将投票结果、投票结果的环签名和环签名的验证公钥发送给投票结果验证设备,以使投票结果验证设备根据投票结果的环签名、验证公钥和预存的双线性映射e:g1×
g1→
g2对投票结果进行验证。由于真实签名是根据投票结果、真实随机私钥、真实身份公钥、各潜在随机私钥和各潜在随机私钥确定的,潜在签名是根据各潜在身份公钥和潜在随机数确定的,因此,在将真实签名和各潜在签名组合生成投票结果的环签名之后,基于环签名的无条件匿名性,可以根据环签名、验证公钥对投票结果进行验证,而无法确定出真实投票者。由于g1和g2为q阶乘法循环群,潜在签名、真实随机公钥和各潜在随机公钥属于g1,而g1和g2存在双线性映射e:g1×
g1→
g2,因此,可以根据预存的双线性映射e:g1×
g1→
g2对投票结果进行快速验证。
123.可选地,步骤201之前,还包括步骤601至步骤604。
124.步骤601,中随机选取保密随机数。
125.本实施例中,除了由kgc选取保密随机数之外,也可以由投票结果签名设备选取保密随机数。由于乘法循环群的特性,在选取了保密随机数,并计算待投票者的身份公钥之后,即便公开了g1、g和y,只要对保密随机数进行保密,保密随机数就很难被破解。
126.步骤602,获取待投票者的身份标识和g1的生成元;待投票者包括真实投票者和各潜在投票者。
127.本实施例中,待投票者的身份标识可以由发起投票的用户输入,待投票者是指所有拥有投票资格的对象,例如,由企业发起的、需要所有员工参与的投票,待投票者是企业的所有员工,对于每一个投票结果,真实投票者是待投票者中的一人,潜在投票者是待投票者中与真实投票者属于同一部门或者同一分公司的任意多人,进而使得仅根据投票结果的环签名仅能够确定投票人是来自于分公司或者部门,但对于是分公司或者部门中的哪位员工无法确定。
128.步骤603,采用第一预设哈希函数计算各待投票者的身份标识的哈希值;第一预设哈希函数能够将任意长度字符串映射至g1。
129.步骤604,采用保密随机数对各投票者的身份标识的哈希值进行幂运算,获得各待投票者的身份私钥。
130.本实施例中,投票结果签名设备在获取到各待投票者的身份标识后,通过不可逆的第一预设哈希函数,计算各待投票者的身份标识的哈希值。再采用保密随机数对各投票者的身份标识的哈希值进行幂运算,获得各待投票者的身份私钥,由于哈希函数的不可逆性,以及保密随机数难以被破解的特性,进而,可以保证各待投票者的身份私钥不被破解,使得真实投票者能够匿名。
131.本实施例提供的投票结果签名方法,通过从中随机选取保密随机数;获取待投票者的身份标识和g1的生成元;待投票者包括真实投票者和各潜在投票者;采用第一预设哈希函数计算各待投票者的身份标识的哈希值;第一预设哈希函数能够将任意长度字符串映射至g1;采用保密随机数对各投票者的身份标识的哈希值进行幂运算,获得各待投票者的身份私钥。由于各待投票者的身份私钥由投票结果签名设备计算获得,而计算身份私钥的保密随机数是不公开的,因此,除了投票结果签名设备之外的其它设备无法确定各待投
票者的身份私钥,进而能够保证待投票者的匿名性。
132.实施例二
133.图3是根据本技术实施例二提供的投票结果验证方法的流程示意图。如图3所示,本技术的执行主体为投票结果验证装置,该投票结果验证装置位于投票结果验证设备中。本实施例提供的投票结果验证方法包括步骤701至步骤702。
134.步骤701,接收投票结果签名设备发送的投票结果、投票结果的环签名和环签名的验证公钥;环签名包括c+1个元素,且包括的各元素均属于g1;验证公钥包括c+1个元素,且包括的各元素均属于g1;g1与第二预设q阶乘法循环群g2存在预存的双线性映射e:g1×
g1→
g2。
135.本实施例中,投票结果签名设备与投票结果验证设备通信连接,投票结果签名设备将投票结果、投票结果的环签名和环签名的验证公钥发送给投票结果验证设备,投票结果验证设备接收到投票结果、投票结果的环签名和环签名的验证公钥。
136.步骤702,根据投票结果的环签名、验证公钥和预存的双线性映射e:g1×
g1→
g2对投票结果进行验证。
137.可选地,步骤702细化包括步骤801至步骤805。
138.步骤801,采用第二预设哈希函数计算投票结果的哈希值h。
139.本实施例中,第二预设哈希函数预先存储在投票结果验证设备中,投票结果验证设备在接收到投票结果之后,采用第二预设哈希函数计算投票结果的哈希值h。
140.步骤802,将投票结果的哈希值h与g1的生成元g的双线性映射e(h,g)确定为第一验证值。
141.本实施例中,由于g1及其生成元g、g2、及g1与g2的双线性映射e:g1×
g1→
g2对于投票结果签名设备和投票结果验证设备而言是公开信息,因此投票结果验证设备可以在接收到投票结果之后,计算第一验证值e(h,g)。
142.步骤803,将环签名包括的各元素σi与验证公钥包括的各元素yi的双线性映射的乘积确定为第二验证值。
143.本实施例中,环签名可以表示为{σi},1≤i≤c+1,其中σi表示环签名的c+1个元素中的第i个。环签名的验证公钥可以表示为{yi},1≤i≤c+1,yi表示验证公钥的c+1个元素中的第i个。环签名包括的各元素σi与验证公钥包括的各元素yi的双线性映射的乘积可以被表示为
144.本实施例中,投票结果验证设备将将环签名包括的各元素σi与验证公钥包括的各元素yi的双线性映射的乘积确定为第二验证值。
145.由于在签名时,潜在签名真实签名潜在随机公钥真实随机公钥σs与σj组合生成环签名,因此,σi包括σj和σs。ys与yj组合生成验证公钥,因此yi包括yj和ys,而i仅表示第几个,σi和yi无顺序之分。
146.因此,可以转换为
147.将σj、yj、σs、ys、带入获得:
[0148][0149]
通过双线性映射的性质,对进行变换:
[0150][0151]
因此,如果环签名是由投票结果签名设备根据真实投票者的真实随机私钥、真实身份公钥、各潜在随机私钥、各潜在随机数字和各潜在身份公钥确定的,则第一验证值会等于第二验证值。
[0152]
步骤804,响应于第一验证值等于第二验证值,确定投票结果验证通过。
[0153]
步骤805,响应于第一验证值不等于第二验证值,确定投票结果验证不通过。
[0154]
本实施例中,在第一验证值等于第二验证值时,确定投票结果通过验证,表明投票
结果是由待投票员工投出的,并且,投票结果未被更改,则接收投票结果。在第一验证值不等于第二验证值时,确定投票结果不通过验证,表明投票结果可能不是待投票员工投出的,或者,投票结果在传输过程中被篡改,则丢弃投票结果。
[0155]
本实施例提供的投票结果验证方法,通过采用第二预设哈希函数计算投票结果的哈希值h;将投票结果的哈希值h与g1的生成元g的双线性映射e(h,g)确定为第一验证值;将环签名包括的各元素σi与验证公钥包括的各元素yi的双线性映射的乘积确定为第二验证值;响应于第一验证值等于第二验证值,确定投票结果验证通过;响应于第一验证值不等于第二验证值,确定投票结果验证不通过。由于只需要计算投票结果的哈希值与g的双线性映射,再将环签名包括的各元素和验证公钥包括的各元素进行双线性映射后计算乘积,就能够根据两次计算的结果是否相等对投票结果进行验证,因此,可以快速的验证投票结果。
[0156]
本实施例提供的投票结果验证方法,通过接收投票结果签名设备发送的投票结果、投票结果的环签名和环签名的验证公钥;环签名包括c+1个元素,且包括的各元素均属于g1;验证公钥包括c+1个元素,且包括的各元素均属于g1;g1与第二预设q阶乘法循环群g2存在预存的双线性映射e:g1×
g1→
g2;根据投票结果的环签名、验证公钥和预存的双线性映射e:g1×
g1→
g2对投票结果进行验证。由于投票结果验证设备只接受环签名、验证公钥和投票结果,并不知道预设保密随机数,因此,投票结果验证设备只能怪对投票结果进行验证,而不能得知投票结果是有具体的哪位投票者投票的,能够保护投票者的隐私。
[0157]
以下将通过示例对本技术的投票结果签名方法和验证方法进行进一步说明。
[0158]
示例一
[0159]
在本示例中,通过,在本示例中,通过,生成投票结果的环签名和验证公钥。通过验证是否等于e(h,g)来对投票结果进行验证。
[0160]
签名算法的签名效率与签名算法的计算复杂度有关,计算复杂度越高,生成签名的效率越低。验证签名的效率与验证签名的计算复杂度有关,同样的,验证签名的计算复杂度越高,验证签名的速度越慢。计算复杂度与算法中密码操作的个数相关。
[0161]
密码操作是指如指数运算、标量乘法运算、哈希运算、双线性运算等运算操作。其中,指数运算的时间c
me
通常为0.83ms,标量乘法运算的时间c
mul
通常为0.75ms,哈希运算c
mtp
的运算时间通常为1.18ms,双线性运算c
par
的运算时间通常为2.75ms。
[0162]
综上,本示例中,在环签名中包括n=c+1个元素时,签名算法的签名时间为:(n+2)c
me
+2c
mtp
+nc
mul
;
[0163]
签名算法的验证时间为:2c
par
+(n+4)c
me
+3c
mtp
+nc
mul
;
[0164]
签名算法的总时间为:3c
par
+(2n+7)c
me
+7c
mtp
+2nc
mul
。
[0165]
环签名算法的计算复杂度随着环签名中包括的元素个数的增加而增加,现有技术中的第一种签名算法的总时间为:c
par
+(6n+1)c
mul
+(3n+1)c
mtp
+c
me
;第二种签名算法的总时间为:(2n+1)c
par
+(6n+5)c
me
+2c
mtp
+nc
mul
;第二种签名算法的总时间为:(5n+2)c
me
+2nc
mul
+5c
mtp
+(n+2)c
par
。本示例提供的签名方法和验证方法,与现有技术中的几种签名算法的计算总时间相比更低,计算复杂度更低,因此,可以更高效的对投票结果进行签名和验证,有利
于应用于大规模匿名投票。
[0166]
实施例三
[0167]
图4是根据本技术实施例三提供的投票结果签名装置的结构示意图。如图4所示,本实施例提供的投票结果签名装置40包括:获取模块41,第一确定模块42,第二确定模块43,生成模块44和发送模块45。
[0168]
获取模块41,用于获取投票结果、真实投票者的真实密钥信息、以及预设数量c的潜在投票者的潜在密钥信息;各潜在投票者与真实投票者不同;真实密钥信息包括真实随机公钥、真实随机私钥和真实身份公钥;潜在密钥信息包括潜在随机公钥、潜在随机私钥、潜在身份公钥和潜在随机数;各潜在身份公钥与真实身份公钥均相同,且是根据预设保密随机数和第一预设q阶乘法循环群g1的生成元确定的;g1与第二预设q阶乘法循环群g2存在双线性映射e:g1×
g1→
g2;真实随机公钥和各潜在随机公钥均属于g1,预设保密随机数、真实随机私钥、潜在随机私钥和潜在随机数均属于q阶有限域
[0169]
第一确定模块42,用于根据各潜在随机数和各潜在身份公钥确定各潜在投票者的潜在签名,各潜在签名属于g1;
[0170]
第二确定模块43,用于根据投票结果、真实随机私钥、真实身份公钥、各潜在随机私钥和各潜在随机数确定真实投票者的真实签名。
[0171]
生成模块44,用于将真实签名和各潜在签名组合生成投票结果的环签名,投票结果的环签名包括c+1个元素,将真实随机公钥和各潜在随机公钥组合生成环签名的验证公钥,验证公钥包括c+1个元素。
[0172]
发送模块45,用于将投票结果、投票结果的环签名和环签名的验证公钥发送给投票结果验证设备,以使投票结果验证设备根据投票结果的环签名、验证公钥和预存的双线性映射e:g1×
g1→
g2对投票结果进行验证。
[0173]
可选地,潜在密钥信息还包括潜在投票者的潜在身份私钥;获取模块41具体用于:接收真实投票者输入的真实身份标识和投票结果;根据真实身份标识获取预设数量的潜在身份私钥;潜在身份私钥属于g1,且是根据潜在投票者的潜在身份标识、第一预设哈希函数和预设保密随机数确定的;根据真实身份标识获取真实身份公钥和各潜在身份公钥;从随机选取真实随机私钥、潜在随机私钥和潜在随机数;根据真实随机私钥和生成元计算真实随机公钥,并根据各潜在随机私钥和生成元计算各潜在随机公钥。
[0174]
可选地,获取模块41具体用于:采用真实随机私钥对生成元进行幂运算,获得真实随机公钥;采用各潜在随机私钥对生成元进行幂运算,获得各潜在随机公钥。
[0175]
可选地,第一确定模块42具体用于:根据各潜在身份私钥、各潜在随机数和各潜在身份公钥计算各潜在签名。
[0176]
可选地,第一确定模块42具体还用于:采用潜在随机数对潜在身份公钥进行幂运算,获得潜在身份公钥的第一幂运算值;将潜在身份私钥与所述第一幂运算值的乘积,确定为潜在签名。
[0177]
可选地,第二确定模块43具体用于:采用第二预设哈希函数计算投票结果的哈希值h;第二预设哈希函数能够将任意长度字符串映射至g1;采用潜在随机私钥对潜在身份私钥进行幂运算,获得预设数量的潜在身份私钥的第二幂运算值;采用潜在随机私钥和潜在
随机数的乘积对真实身份公钥进行幂运算,获得预设数量的真实身份公钥的第三幂运算值;将预设数量的所述第二幂运算值和预设数量的所述第三幂运算值进行累乘运算,获得各所述第二幂运算值与各所述第三幂运算值的累乘值;将投票结果的哈希值与所述累乘值的商作为被开方数,将所述真实随机私钥作为根指数,进行开方运算,将开方运算的结果确定为所述真实签名。
[0178]
可选地,投票结果签名装置40还包括计算模块,计算模块用于:从中随机选取保密随机数;获取待投票者的身份标识和g1的生成元;待投票者包括真实投票者和各潜在投票者;采用第一预设哈希函数计算各待投票者的身份标识的哈希值;第一预设哈希函数能够将任意长度字符串映射至g1;采用保密随机数对各投票者的身份标识的哈希值进行幂运算,获得各待投票者的身份私钥。
[0179]
本实施例提供的投票结果签名装置可以执行上述实施例一提供的任意一种投票结果签名方法,具体的实现方式与原理类似,此处不再赘述。
[0180]
实施例四
[0181]
图5是根据本技术实施例四提供的投票结果验证装置的结构示意图。如图5所示,本实施例提供的投票结果验证装置50包括:接收模块51和验证模块52。
[0182]
接收模块51,用于接收投票结果签名设备发送的投票结果、投票结果的环签名和环签名的验证公钥;环签名包括c+1个元素,且包括的各元素均属于g1;验证公钥包括c+1个元素,且包括的各元素均属于g1;g1与第二预设q阶乘法循环群g2存在预存的双线性映射e:g1×
g1→
g2;
[0183]
验证模块52,用于根据投票结果的环签名、验证公钥和预存的双线性映射e:g1×
g1→
g2对投票结果进行验证。
[0184]
可选地,验证模块52具体用于:采用第二预设哈希函数计算投票结果的哈希值h;将投票结果的哈希值h与g1的生成元g的双线性映射e(h,g)确定为第一验证值;将环签名包括的各元素σi与验证公钥包括的各元素yi的双线性映射的乘积确定为第二验证值;响应于第一验证值等于第二验证值,确定投票结果验证通过;响应于第一验证值不等于第二验证值,确定投票结果验证不通过。
[0185]
本实施例提供的投票结果验证装置可以执行上述实施例二提供的任意一种投票结果验证方法,具体的实现方式与原理类似,此处不再赘述。
[0186]
实施例五
[0187]
图6是根据本技术实施例五提供的投票结果签名设备的结构示意图。如图6所示,本实施例提供的投票结果签名设备60包括存储器61、处理器62和收发器63。
[0188]
存储器61、处理器62和收发器63电路互连。
[0189]
存储器61存储计算机执行指令。
[0190]
收发器63用于收发数据。
[0191]
处理器62执行存储器61存储的计算机执行指令,实现如上述任意一个实施例提供的投票结果签名方法,具体的实现方式与原理类似,此处不再赘述。
[0192]
实施例六
[0193]
图7是根据本技术实施例六提供的投票结果验证设备的结构示意图。如图7所示,
本实施例提供的投票结果验证设备70包括存储器71、处理器72和收发器73。
[0194]
存储器71、处理器72和收发器73电路互连。
[0195]
存储器71存储计算机执行指令。
[0196]
收发器73用于收发数据。
[0197]
处理器72执行存储器71存储的计算机执行指令,实现如上述任意一个实施例提供的投票结果签名方法,具体的实现方式与原理类似,此处不再赘述。
[0198]
实施例五和实施例六中的存储器、处理器和收发器之间可以通过总线实现电路互连。总线可以是工业标准体系结构(industry standard architecture,简称为isa)总线、外部设备互连(peripheral component interconnect,简称为pci)总线或扩展工业标准体系结构(extended industry standard architecture,简称为eisa)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6和图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0199]
存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘等。
[0200]
在示例性实施例中,投票结果签名设备和投票结果验证设备可以被一个或多个应用专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
[0201]
本技术的实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现如上述任意一个实施例提供的投票结果签名方法或投票结果验证方法。示例性地,计算机可读存储介质可以为只读存储器(rom)、随机存取存储器(ram)、磁带、软盘和光数据存储设备等。
[0202]
本技术的实施例还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述任意一个实施例提供的投票结果签名方法或投票结果验证方法。
[0203]
应该理解,上述的设备实施例仅是示意性的,本技术的设备还可通过其它的方式实现。例如,上述实施例中模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如,多个模块可以结合,或者可以集成到另一个系统,或一些特征可以忽略或不执行。
[0204]
另外,若无特别说明,在本技术各个实施例中的各功能模块可以集成在一个模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一起。上述集成的模块既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
[0205]
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本技术并不受所描述的动作顺序的限制,因为依据本技术,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本技术所必须的。
[0206]
进一步需要说明的是,虽然流程图中的各个步骤按照箭头的指示依次显示,但是
这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
[0207]
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本技术的其它实施方案。本技术旨在涵盖本技术的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本技术的一般性原理并包括本技术未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本技术的真正范围和精神由下面的权利要求书指出。
[0208]
应当理解的是,本技术并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本技术的范围仅由所附的权利要求书来限制。
技术特征:
1.一种投票结果签名方法,其特征在于,应用于投票结果签名设备,包括:获取投票结果、真实投票者的真实密钥信息、以及预设数量c的潜在投票者的潜在密钥信息;各潜在投票者与真实投票者不同;所述真实密钥信息包括真实随机公钥、真实随机私钥和真实身份公钥;所述潜在密钥信息包括潜在随机公钥、潜在随机私钥、潜在身份公钥和潜在随机数;各潜在身份公钥与真实身份公钥均相同,且是根据预设保密随机数和第一预设q阶乘法循环群g1的生成元确定的;g1与第二预设q阶乘法循环群g2存在双线性映射e:g1×
g1→
g2;真实随机公钥和各潜在随机公钥均属于g1,预设保密随机数、真实随机私钥、潜在随机私钥和潜在随机数均属于q阶有限域根据各潜在随机数和各潜在身份公钥确定各潜在投票者的潜在签名,各潜在签名属于g1;根据投票结果、真实随机私钥、真实身份公钥、各潜在随机私钥和各潜在随机数确定真实投票者的真实签名;将真实签名和各潜在签名组合生成投票结果的环签名,投票结果的环签名包括c+1个元素,将真实随机公钥和各潜在随机公钥组合生成所述环签名的验证公钥,所述验证公钥包括c+1个元素;将投票结果、投票结果的环签名和所述环签名的验证公钥发送给投票结果验证设备,以使投票结果验证设备根据投票结果的环签名、所述验证公钥和预存的双线性映射e:g1×
g1→
g2对投票结果进行验证。2.根据权利要求1所述的方法,其特征在于,所述潜在密钥信息还包括潜在投票者的潜在身份私钥;所述获取投票结果、真实投票者的真实密钥信息、以及预设数量c的潜在投票者的潜在密钥信息,包括:接收真实投票者输入的真实身份标识和投票结果;根据所述真实身份标识获取预设数量的潜在身份私钥;所述潜在身份私钥属于g1,且是根据潜在投票者的潜在身份标识、第一预设哈希函数和预设保密随机数确定的;根据所述真实身份标识获取真实身份公钥和各潜在身份公钥;从随机选取真实随机私钥、潜在随机私钥和潜在随机数;根据所述真实随机私钥和所述生成元计算所述真实随机公钥,并根据各所述潜在随机私钥和所述生成元计算各所述潜在随机公钥。3.根据权利要求2所述的方法,其特征在于,所述根据所述真实随机私钥和所述生成元计算所述真实随机公钥,包括:采用所述真实随机私钥对所述生成元进行幂运算,获得所述真实随机公钥;所述根据各所述潜在随机私钥和所述生成元计算各所述潜在随机公钥,包括:采用各所述潜在随机私钥对所述生成元进行幂运算,获得各所述潜在随机公钥。4.根据权利要求2所述的方法,其特征在于,所述根据各潜在随机数和各潜在身份公钥确定各潜在投票者的潜在签名,包括:根据各潜在身份私钥、各潜在随机数和各潜在身份公钥计算各潜在签名。
5.根据权利要求4所述的方法,其特征在于,所述据各潜在身份私钥、各潜在随机数和各潜在身份公钥计算各潜在签名,包括:采用潜在随机数对潜在身份公钥进行幂运算,获得潜在身份公钥的第一幂运算值;将潜在身份私钥与所述第一幂运算值的乘积,确定为潜在签名。6.根据权利要求2所述的方法,其特征在于,所述根据投票结果、真实随机私钥、真实身份公钥、各潜在随机私钥和各潜在随机数确定真实投票者的真实签名,包括:采用第二预设哈希函数计算投票结果的哈希值h;所述第二预设哈希函数能够将任意长度字符串映射至g1;采用潜在随机私钥对潜在身份私钥进行幂运算,获得预设数量的潜在身份私钥的第二幂运算值;采用潜在随机私钥和潜在随机数的乘积对真实身份公钥进行幂运算,获得预设数量的真实身份公钥的第三幂运算值;将预设数量的所述第二幂运算值和预设数量的所述第三幂运算值进行累乘运算,获得各所述第二幂运算值与各所述第三幂运算值的累乘值;将投票结果的哈希值与所述累乘值的商作为被开方数,将所述真实随机私钥作为根指数,进行开方运算,将开方运算的结果确定为所述真实签名。7.根据权利要求1-6任一项所述的方法,其特征在于,所述获取投票结果、真实投票者的真实密钥信息、以及预设数量c的潜在投票者的潜在密钥信息之前,还包括:从中随机选取保密随机数;获取待投票者的身份标识和g1的生成元;所述待投票者包括真实投票者和各潜在投票者;采用第一预设哈希函数计算各待投票者的身份标识的哈希值;所述第一预设哈希函数能够将任意长度字符串映射至g1;采用所述保密随机数对各投票者的身份标识的哈希值进行幂运算,获得各待投票者的身份私钥。8.一种投票结果验证方法,其特征在于,应用于投票结果验证设备,包括:接收投票结果签名设备发送的投票结果、投票结果的环签名和所述环签名的验证公钥;所述环签名包括c+1个元素,且包括的各元素均属于g1;所述验证公钥包括c+1个元素,且包括的各元素均属于g1;g1与第二预设q阶乘法循环群g2存在预存的双线性映射e:g1×
g1→
g2;根据投票结果的环签名、所述验证公钥和预存的双线性映射e:g1×
g1→
g2对投票结果进行验证。9.根据权利要求8所述的方法,其特征在于,所述根据投票结果的环签名、所述验证公钥和预存的双线性映射e:g1×
g1→
g2对投票结果进行验证,包括:采用第二预设哈希函数计算投票结果的哈希值h;将投票结果的哈希值h与g1的生成元g的双线性映射e(h,g)确定为第一验证值;将所述环签名包括的各元素σ
i
与验证公钥包括的各元素y
i
的双线性映射的乘积确定为第二验证值;
响应于所述第一验证值等于所述第二验证值,确定投票结果验证通过;响应于所述第一验证值不等于所述第二验证值,确定投票结果验证不通过。10.一种投票结果签名装置,其特征在于,包括:获取模块,用于获取投票结果、真实投票者的真实密钥信息、以及预设数量c的潜在投票者的潜在密钥信息;各潜在投票者与真实投票者不同;所述真实密钥信息包括真实随机公钥、真实随机私钥和真实身份公钥;所述潜在密钥信息包括潜在随机公钥、潜在随机私钥、潜在身份公钥和潜在随机数;各潜在身份公钥与真实身份公钥均相同,且是根据预设保密随机数和第一预设q阶乘法循环群g1的生成元确定的;g1与第二预设q阶乘法循环群g2存在双线性映射e:g1×
g1→
g2;真实随机公钥和各潜在随机公钥均属于g1,预设保密随机数、真实随机私钥、潜在随机私钥和潜在随机数均属于q阶有限域第一确定模块,用于根据各潜在随机数和各潜在身份公钥确定各潜在投票者的潜在签名,各潜在签名属于g1;第二确定模块,用于根据投票结果、真实随机私钥、真实身份公钥、各潜在随机私钥和各潜在随机数确定真实投票者的真实签名;生成模块,用于将真实签名和各潜在签名组合生成投票结果的环签名,投票结果的环签名包括c+1个元素,将真实随机公钥和各潜在随机公钥组合生成所述环签名的验证公钥,所述验证公钥包括c+1个元素;发送模块,用于将投票结果、投票结果的环签名和所述环签名的验证公钥发送给投票结果验证设备,以使投票结果验证设备根据投票结果的环签名、所述验证公钥和预存的双线性映射e:g1×
g1→
g2对投票结果进行验证。11.一种投票结果验证装置,其特征在于,包括:接收模块,用于接收投票结果签名设备发送的投票结果、投票结果的环签名和所述环签名的验证公钥;所述环签名包括c+1个元素,且包括的各元素均属于g1;所述验证公钥包括c+1个元素,且包括的各元素均属于g1;g1与第二预设q阶乘法循环群g2存在预存的双线性映射e:g1×
g1→
g2;验证模块,用于根据投票结果的环签名、所述验证公钥和预存的双线性映射e:g1×
g1→
g2对投票结果进行验证。12.一种投票结果签名设备,其特征在于,包括:存储器、处理器和收发器;所述存储器、所述处理器和所述收发器电路互连;所述存储器存储计算机执行指令;所述收发器用于收发数据;所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求1-7中任一项所述的方法。13.一种投票结果验证设备,其特征在于,包括:存储器、处理器和收发器;所述存储器、所述处理器和所述收发器电路互连;所述存储器存储计算机执行指令;所述收发器用于收发数据;所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求8或9所述的方
法。14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1-9中任一项所述的方法。15.一种计算机程序产品,其特征在于,包括计算机程序,该计算机程序被处理器执行时实现如权利要求1-9中任一项所述的方法。
技术总结
本申请提供一种投票结果签名方法、验证方法、装置、设备、介质及产品,涉及信息安全领域。该方法包括:获取投票结果、真实投票者的真实密钥信息、以及预设数量c的潜在投票者的潜在密钥信息;确定各潜在投票者的潜在签名,各潜在签名属于G1;确定真实投票者的真实签名;将真实签名和各潜在签名组合生成投票结果的环签名,将真实随机公钥和各潜在随机公钥组合生成环签名的验证公钥;将投票结果、投票结果的环签名和环签名的验证公钥发送给投票结果验证设备,以使投票结果验证设备根据投票结果的环签名、验证公钥和预存的双线性映射e:G1×
技术研发人员:王伟可 陈永录 贾建红 杨玉蓉
受保护的技术使用者:中国工商银行股份有限公司
技术研发日:2023.04.20
技术公布日:2023/7/20
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
上一篇:一种LED微距像素阵列廊线叠焊工艺的制作方法 下一篇:层压材料的制作方法
