一种匿名电子投票方法及装置、存储介质及电子设备与流程

文档序号:31732690发布日期:2022-10-05 02:26阅读:151来源:国知局
一种匿名电子投票方法及装置、存储介质及电子设备与流程

1.本发明涉及信息安全技术领域,特别涉及一种匿名电子投票方法及装置、存储介质及电子设备。


背景技术:

2.随着互联网技术的发展,投票方式增加了线上投票的方式,通过线上电子投票的方式,人们无需面对面即可进行投票,有效扩大参与人数,使得最终的投票结果更具有代表性。
3.线上投票的时候,投票人在投票的时候通常会携带投票人的信息,这些信息通常是投票人的隐私信息。随着数据的信息化,一些不法分子可以使用投票人的隐私数据进行违法活动,造成投票人在经济上存在重大损失,因此,如果放置投票人的隐私数据泄露,成为开发人员亟需解决的问题。


技术实现要素:

4.有鉴于此,本发明提供一种匿名电子投票方法及装置、存储介质及电子设备,应用本发明可以将投票人的信息进行隐藏,避免不法分子使用选票追踪到投票人的信息,进而保护投票人的隐私数据。
5.为实现上述目的,本发明实施例提供如下技术方案:
6.本发明第一方面公开一种匿名电子投票方法,包括:
7.构建包含各个选民的选民环,并生成所述选民环的投票处理参数和私钥集,所述私钥集中包含每个选民的私钥;
8.对于每个所述选民,使用所述投票处理参数和所述选民的私钥,对所述选民的选票进行环签名处理,得到所述选民的环签名选票,并将所述环签名选票向预设的选举中心发送,所述环签名选票中包含选票和所述选民环对该选票的环签名。
9.上述的方法,可选的,所述生成所述选民环的投票处理参数和私钥集,包括:
10.确定各个第一算法因子以及第一哈希函数;
11.基于所述第一哈希函数确定第一公共参数;
12.对于所述选民环中的每个选民,应用各个所述第一算法因子,确定该选民的第一多项式向量和第二多项式向量,并基于所述第一多项式向量和所述第二多项式向量,构造所述选民的第三多项式向量和第四多项式向量;
13.基于所述选民环中的每个选民的第三多项式向量,组成所述选民环的公钥集;
14.基于所述选民环的每个选民的第四多项式向量,组成所述选民环的私钥集;
15.基于所述第一公共参数和所述公钥集,确定所述选民环的投票处理参数。
16.上述的方法,可选的,所述生成所述选民环的投票处理参数和私钥集,包括:
17.确定各个第二算法因子、第二哈希函数和第三哈希函数;
18.调用预设的算法,生成随机向量和主私钥;
19.将所述随机向量、所述第二哈希函数和所述第三哈希函数确定为第二公共参数;
20.对于所述选民环中的每个选民,应用所述选民的身份信息,确定所述选民的公钥,并应用所述公钥、各个所述第二算法因子、所述第二公共参数以及所述主私钥,生成所述选民的私钥;
21.应用每个所述选民的私钥,组成所述选民环的私钥集;
22.应用每个所述选民的公钥,组成所述选民环的公钥集,并基于所述公钥集和所述第二公共参数,确定所述选民环的投票处理参数。
23.上述的方法,可选的,所述对所述选民的选票进行环签名处理,得到所述选民的环签名选票,包括:
24.为所述选民选择签名多项式向量;
25.基于所述选票、所述投票处理参数和所述选民的私钥,确定所述选民的各个签名参数;
26.对各个所述签名参数和所述签名多项式向量进行处理,得到签名因子;
27.基于预设的签名运算规则,判断是否能够输出与所述签名因子对应的签名数据;
28.若确定不能输出与所述签名因子对应的签名数据,则返回执行为所述选民选择签名多项式向量的步骤;
29.若确定能输出与所述签名因子对应的签名数据,则基于所述签名因子、所述签名数据和所述选民环,得到所述选民环对所述选民的选票的环签名;
30.将所述环签名和所述选票组成所述选民的环签名选票。
31.上述的方法,可选的,还包括:
32.所述选举中心应用所述投票处理参数对每个所述选民的环签名选票进行验证,将通过验证的环签名选票确定为合法选票,以及将未通过验证的环签名选票确定为不合法选票。
33.本发明第二方面公开一种匿名电子投票装置,包括:
34.生成单元,用于构建包含各个选民的选民环,并生成所述选民环的投票处理参数和私钥集,所述私钥集中包含每个选民的私钥;
35.环签名单元,用于对于每个所述选民,使用所述投票处理参数和所述选民的私钥,对所述选民的选票进行环签名处理,得到所述选民的环签名选票,并将所述环签名选票向预设的选举中心发送,所述环签名选票中包含选票和所述选民环对该选票的环签名。
36.上述的装置,可选的,所述生成单元,包括:
37.第一确定子单元,用于确定各个第一算法因子以及第一哈希函数;
38.第二确定子单元,用于基于所述第一哈希函数确定第一公共参数;
39.构造子单元,用于对于所述选民环中的每个选民,应用各个所述第一算法因子,确定该选民的第一多项式向量和第二多项式向量,并基于所述第一多项式向量和所述第二多项式向量,构造所述选民的第三多项式向量和第四多项式向量;
40.第一组成子单元,用于基于所述选民环中的每个选民的第三多项式向量,组成所述选民环的公钥集;
41.第二组成子单元,用于基于所述选民环的每个选民的第四多项式向量,组成所述选民环的私钥集;
42.第三确定子单元,用于基于所述第一公共参数和所述公钥集,确定所述选民环的投票处理参数。
43.上述的装置,可选的,所述生成单元,包括:
44.第四确定子单元,用于确定各个第二算法因子、第二哈希函数和第三哈希函数;
45.调用子单元,用于调用预设的算法,生成随机向量和主私钥;
46.第五确定子单元,用于将所述随机向量、所述第二哈希函数和所述第三哈希函数确定为第二公共参数;
47.生成子单元,用于对于所述选民环中的每个选民,应用所述选民的身份信息,确定所述选民的公钥,并应用所述公钥、各个所述第二算法因子、所述第二公共参数以及所述主私钥,生成所述选民的私钥;
48.第三组成子单元,用于应用每个所述选民的私钥,组成所述选民环的私钥集;
49.第四组成子单元,用于应用每个所述选民的公钥,组成所述选民环的公钥集,并基于所述公钥集和所述第二公共参数,确定所述选民环的投票处理参数。
50.上述的装置,可选的,所述环签名单元,包括:
51.选择子单元,用于为所述选民选择签名多项式向量;
52.第六确定子单元,用于基于所述选票、所述投票处理参数和所述选民的私钥,确定所述选民的各个签名参数;
53.处理子单元,用于对各个所述签名参数和所述签名多项式向量进行处理,得到签名因子;
54.判断子单元,用于基于预设的签名运算规则,判断是否能够输出与所述签名因子对应的签名数据;若确定不能输出与所述签名因子对应的签名数据,则触发所述选择子单元重新执行为所述选民选择签名多项式向量的内容;若确定能输出与所述签名因子对应的签名数据,则触发获得子单元执行基于所述签名因子、所述签名数据和所述选民环,得到所述选民环对所述选民的选票的环签名的内容;
55.第五组成子单元,用于将所述环签名和所述选票组成所述选民的环签名选票。
56.上述的装置,可选的,还包括:
57.验证单元,用于所述选举中心应用所述投票处理参数对每个所述选民的环签名选票进行验证,将通过验证的环签名选票确定为合法选票,以及将未通过验证的环签名选票确定为不合法选票。
58.本发明第三方面公开一种存储介质,所述存储介质包括存储的指令,其中,在所述指令运行时控制所述存储介质所在的设备执行上所述的匿名电子投票方法。
59.本发明第四方面公开一种电子设备,包括存储器,以及一个或者一个以上的指令,其中一个或者一个以上指令存储于存储器中,且经配置以由一个或者一个以上处理器执行如上所述的匿名电子投票方法。
60.与现有技术相比,本发明具有以下优点:
61.本发明提供一种匿名电子投票方法及装置、存储介质及电子设备,该方法包括:构建包含各个选民的选民环,生成选民环的投票处理参数和私钥集,私钥集中包含每个选民的私钥;对于每个选民,使用投票处理参数和选民的私钥,对选民的选票进行环签名处理,得到包含该选票和选民环对该选票的环签名的环签名选票,将该环签名选票向选举中心发
送,至此,选民完成匿名投票。通过使用选民环对选票进行环签名,不法分子无法通过签名追踪到对应的选民,进而可以有效的隐藏选民的信息,有效避免选票上关于选民的隐私数据的泄露,提高选民的个人信息的安全性。除此之外,本发明提供的方法还具备量子安全性,即使在量子计算机下依然不会被攻破其投票算法依赖的环签名安全性,本发明具备轻量性的优点,便于应用于小型算力不高的设备中,可适用于更多的应用场景。
附图说明
62.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
63.图1为本发明实施例提供的一种匿名电子投票的方法流程图;
64.图2为本发明实施例提供的生成选民环的投票处理参数和私钥集的方法流程图;
65.图3为本发明实施例提供的环签名模块对选民的选票进行环签名处理,得到选民的环签名选票的方法流程图;
66.图4为本发明实施例提供的生成选民环的投票处理参数和私钥集的另一方法流程图;
67.图5为本发明实施例提供的一种匿名电子投票装置的结构示意图;
68.图6为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
69.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
70.在本技术中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
71.在电子投票活动中为了保证投票结果的合法性,选民需要在选票上进行数字签名,并将选票连同该签名一并发送给选举中心。由于选票对应的数字签名只有一个合法的用户公钥能够成功验证,因此选举中心能够通过该签名追踪到选票所对应的选民,造成选民的身份隐私发生泄漏。此外,现有的电子签名系统利用较复杂的算法来保证选民的合法性,造成系统性能资源浪费。目前已有的宣称能够保证匿名的电子投票系统尽管能达成这一目的,但是安全性上普遍不足且投票时签名效率不够,在量子计算机愈来愈近的今天很难真正保证选民的身份隐私。
72.除了上述的问题之外,现有的格上电子投票算法为了避免公钥基础设施(pki)模型中由公钥证书带来的额外存储和维护开销,普遍采用基于身份的密码体制,通过主私钥
来为用户派生出与用户身份信息绑定的私钥。但是在密钥委派过程中使用一种较为复杂的陷门结构,造成私钥矩阵生成过慢且维度过高,造成签名存储开销过大;此外,签名过程涉及复杂的代数运算,极大影响环签名的生成效率。
73.本发明可用于众多通用或专用的计算装置环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器装置、包括以上任何装置或设备的分布式计算环境等等。本发明实施例提供的方法可以应用在投票系统中,参照图1,为本发明实施例提供的一种匿名电子投票的方法流程图,具体说明如下所述:
74.s101、构建包含各个选民的选民环,并生成选民环的投票处理参数和私钥集,私钥集中包含每个选民的私钥。
75.本发明实施例提供的方法中,可以应用预设的系统建立模块确定各个合法的选民,给定安全参数n,构建包含各个合法的选民的选民环,优选的,选民环可以成为环r。
76.投票处理参数中包含但不限于公共参数pp和公钥集,公钥集中包含每个选民的公钥;投票处理参数为公开的明文数据。
77.s102、对于每个选民,使用投票处理参数和选民的私钥,对选民的选票进行环签名处理,得到选民的环签名选票,并将环签名选票向预设的选举中心发送,环签名选票中包含选票和所述选民环对该选票的环签名。
78.在环中的选民进行投票时,可以调用环签名模块使用投票处理参数和选民的私钥,对选民的选票进行环签名处理,进而得到选民环对该选票的环签名,将该环签名和选票组成环签名选票,至此,选票的匿名处理已经完成,环签名选票是匿名的选票;将环签名选票向投票系统中预设的选举中心发送,进而可以在线进行匿名电子投票,进一步的,每个选民可以使用移动终端或是其他电子智能设备进行投票。
79.本发明实施例提供的方法中,构建包含各个选民的选民环,生成选民环的投票处理参数和私钥集,私钥集中包含每个选民的私钥;对于每个选民,使用投票处理参数和选民的私钥,对选民的选票进行环签名处理,得到包含该选票和选民环对该选票的环签名的环签名选票,将该环签名选票向选举中心发送,至此,选民完成匿名投票。通过使用选民环对选票进行环签名,不法分子无法通过签名追踪到对应的选民,进而可以有效的隐藏选民的信息,有效避免选票上关于选民的隐私数据的泄露,提高选民的个人信息的安全性。
80.选举中心中设置验证模块,在将环签名选票向选举中心发送后,选举中心还需要使用验证模块对环签名选票进行验证,以判断接收到的环签名选票是否由s101中构建的选民环进行签名得到的。选举中心对环签名选票进行验证的过程如下所述:
81.选举中心应用投票处理参数对每个选民的环签名选票进行验证,将通过验证的环签名选票确定为合法选票,以及将未通过验证的环签名选票确定为不合法选票;需要说明的是,选举中心对接收到的每张环签名选票进行验证,当环签名选票通过验证时,可以确定该环签名选票为选民环中的选民发送的选票,通过验证的环签名选票为合法选票;当环签名选票未通过验证时,可以确定该环签名选票不为选民环中的选民发送的选票,未通过验证的环签名选票为不合法选票。
82.选举中心对接收到的环签名选票进行验证,进而可以确定环签名选票是否合法,可以防止不属于选民环中的人投票,有效避免出现恶意投票行为,防止不法分子通过恶意的投票行为影响投票结果,有效保证投票结果的公正性。
83.为了进一步说明本发明提供的匿名电子投票的方法流程,本发明还提供具体的实例进行说明,在说明实例的具体内容之前,对实例中可能应用到的技术内容进行说明,具体如下所述:
84.对于多项式环定义商环定义商环其中n是2的幂。对于环中的多项式其对应于系数向量向量用粗体小写字母表示,矩阵用粗体大写字母表示。没有特别说明,向量均表示为列向量。向量v的转置表示为v
t
,向量v的欧几里得范数表示为对于分布d,令x

d表示x随机抽样自分布d;对于集合s,将x

s表示为从集合s中均匀随机地抽样一个元素x。
85.格的定义:
86.给定矩阵其包含一组线性无关的m维向量b1,b2,

,bm,那么由矩阵b生成的m维满秩格λ被定义为向量b1,b2,

,bm的线性组合:
[0087][0088]
其中,矩阵b称为格的基。
[0089]
困难问题:
[0090]
给定正整数q,n,m,向量以及一个实数β,问题是指找到一个非零向量使得a
t
e=0(mod q)且‖e‖≤β。
[0091]
对于任意m,β=poly(n)以及素数解决平均情况下的问题和解决最坏情况下的sivp
γ
一样难,其中,近似因子:拒绝抽样算法:
[0092]
给定正整数m以及任意集合v,令f和gv为定义在空间上的概率分布,其中gv是一个由v∈v索引的概率分布族,并具有如下性质:对于任意v∈v以及z

f,存在常数使得mgv(z)≥f(z)。那么下面两个算法的输出是统计不可区分的(统计距离在):
[0093]
1)、v

v,z
←gv
,以概率输出(z,v)。
[0094]
2)、v

v,z

f,以概率输出(z,v)。
[0095]
实例一:
[0096]
可以使用投票系统中的系统建立模块keygen、环签名模块rsign以及验证模块rverify实现本发明的方案,其中,验证模块rverify预先设置在选举中心中,选举中心为投票系统的部分设备。
[0097]
系统建立模块keygen用于构建选民环,以及生成选民环的投票处理参数和私钥
集;进一步的,keygen中设置了系统算法kengen(1n),应用系统算法kengen(1n)给定安全参n,对于合法的l个选民,建立环r=(u1,u2,

,u
l
),分别为环中选民生成公钥pki和私钥ski以及第一公共参数,进一步的,第一公共参数和公钥组成选民环的投票处理参数。
[0098]
进一步的,参照图2,为系统建立模块生成选民环的投票处理参数和私钥集的方法流程图,具体说明如下所述:
[0099]
s201、确定各个第一算法因子以及第一哈希函数。
[0100]
本发明实施例提供的方法中,各个第一算法因子包括但不限于整数q,m,w以及正实数α,其中,整数q,m,w以及正实数α均为数值,用于后续生成选民的私钥的运算;可以使用系统算法kengen(1n)确定整数q,m,w以及正实数α。
[0101]
进一步的,第一哈希函数可以为碰撞哈希函数优选的,哈希函数h的建立及公私钥的生成是本发明的准备步骤,通过哈希函数和公私钥能够在签名生成阶段生成环签名,验证阶段用于验证该环签名是否由当前的环中选民成员生成。
[0102]
s202、基于第一哈希函数确定第一公共参数。
[0103]
优选的,第一公共参数可以使用pp表示,第一公共参数的取值为:pp=h。
[0104]
s203、对于选民环中的每个选民,应用各个第一算法因子,确定该选民的第一多项式向量和第二多项式向量,并基于第一多项式向量和第二多项式向量,构造选民的第三多项式向量和第四多项式向量。
[0105]
对于选民环中的每个选民ui,选民ui的第一多项式向量为均为随机多项式向量选民ui的第二多项式向量为多项式向量其中,第二多项式向量中每个多项式的系数取值区间为(-2
α
,2
α
)。
[0106]
对于选民环r=(u1,u2,

,u
l
)中每个选民ui,计算使用第一多项式向量构造选民ui的第三多项式向量ai=[2a
′i|2a
″i+q],以及使用第二多项式向量构造选民ui的第四多项式向量进一步的,使得aisi=q mod 2q。
[0107]
s204、基于选民环中的每个选民的第三多项式向量,组成选民环的公钥集。
[0108]
优选的,将选民环中每个选民的第三多项式向量组成公钥集,公钥集可以表示为{ai}
i∈[l]
,其中,[l]指集合{1,2,

,l}。
[0109]
s205、基于选民环的每个选民的第四多项式向量,组成选民环的私钥集。
[0110]
优选的,将选民环中每个选民的第四多项式向量组成私钥集,私钥集可以表示为{si}
i∈[l]
,其中,[l]指集合{1,2,

,l}。
[0111]
s206、基于第一公共参数和公钥集,确定选民环的投票处理参数。
[0112]
使用第一公共参数和公钥集,组成选民环的投票处理参数。
[0113]
本发明提供的方法在生成密钥时不包含强陷门,能够降低环签名复杂性,降低参数大小,提高生成密钥的效率。
[0114]
环签名模块rsign用于使用投票处理参数和每个选民的私钥,对每个选民的选票进行环签名处理,得到每个选民的环签名选票;示例性的,对于选民ui,利用投票处理参数
中的第一公共参数pp,通过选民ui的私钥ski来生成环r对选民ui的选票μ的环签名sigi,将选票μ和环签名sigi,组成选民ui的环签名选票,并将环签名选票向选举中心发送。
[0115]
进一步的,环签名模块中设置环签名算法rsign(pp,r,μ,sks),pp为第一公共参数、r为选民环,sks为选民的私钥,优选的,选民为us时,私钥sks=ss。参照图3,为本发明实施例提供的环签名模块对选民的选票进行环签名处理,得到选民的环签名选票的方法流程图,具体说明如下所述:
[0116]
s301、为选民选择签名多项式向量。
[0117]
在选民为uj时,为选民uj选择签名多项式向量,签名多项式向量可表示为:其中j∈[l]。
[0118]
s302、基于选票、投票处理参数和选民的私钥,确定选民的各个签名参数。
[0119]
各个签名参数包括aj、mod 2q、r以及μ;其中,aj为选民uj的公钥;r为选民环、μ为选票、mod 2q可根据选民uj的公钥aj和私钥sj计算得到,其中,
[0120]
s303、对各个签名参数和签名多项式向量进行处理,得到签名因子。
[0121]
进一步的,基于第一公共参数的第一哈希函数对各个签名参数和签名多项式向量yj进行处理,输出签名因子c,具体如c=h(∑
j∈[l]ajyj mod 2q,r,μ)。
[0122]
s304、基于预设的签名运算规则,判断是否能够输出与签名因子对应的签名数据;若确定不能输出与签名因子对应的签名数据,则返回执行s301;若确定能输出与签名因子对应的签名数据,则执行s305。
[0123]
优选的,预设的签名运算规则如:对于j∈[l],当j≠s时,令zj=yj;当j=s时,随机选择b

{0,1},计算zs=(-1)bssc+ys,以概率输出zs,当没有输出zs时,确定不能输出与签名因子对应的签名数据;当输出zs时,确定能输出与签名因子对应的签名数据。优选的,zs可以表示签名数据。
[0124]
进一步的,当确定不能输出与签名因子对应的签名数据时,需要重新选择即返回执行步骤s301,为选民重新选择签名多项式向量。
[0125]
当确定能输出与签名因子对应的签名数据时,执行s305。
[0126]
s305、基于签名因子、签名数据和选民环,得到选民环对选民的选票的环签名。
[0127]
优选的,环签名可以表示为sig=({zj}
j∈[l]
,c,r)。
[0128]
s306、将环签名和选票组成选民的环签名选票。
[0129]
最后,将环签名和选票组成选民的环签名选票,将环签名选票向选举中心发送。
[0130]
本发明的环签名过程采用拒绝抽样技术,并且采用双峰高斯分布,能够降低高低参数,降低存储开销,提高环签名效率。
[0131]
对验证模块验证环签名选票的过程进行说明,验证模块中设置验证算法rverify(pp,r,μ,sig),其中,pp为第一公共参数,选民环r=(u1,u2,

,u
l
),选票μ以及环签名sig={(zj}
j∈[l]
,c,r),验证模块进行如下验证,当且仅当以下两个条件成立时该算法输出1,否则输出0:
[0132]
1)、对于j∈[l],验证
[0133]
2)、验证c=h(∑
j∈[l]aj
zj+qc(mod 2q),r,μ);
[0134]
进一步的,当输出1时,表示环签名选票验证通过,当输出0时,表示环签名选票未通过验证。
[0135]
本发明中的系统建立模块为环签名模块和验证模块生成密钥和公共参数,环签名模块使用公共参数和签名密钥(私钥)来完成环签名操作,生成的环签名由验证模块通过公共参数和验证密钥(公钥)来进行验证。本发明基于多项式环从中选取元素构造签名公私钥,并且构造哈希函数其中集合是长度为n且汉明重量(即向量中非零元素的个数)为w的由{-1,0,1}中元素构成的所有向量的集合;基于以环签名为基础来构造投票系统,选民可以将全体选民作为一个环,并代表该环对选票进行签名。只有在该环内的选民才能参与投票,其他人员无法完成电子投票。选举中心在进行签名验证时,只知道该签名人是整个投票系统中的合法选民,而无法获得其他隐私信息,这就保证了选民在电子投票活动中的完全匿名性。此外,本发明利用格密码学来构造环签名方案,格密码学作为一种抗量子密码算法,因此,本发明能够实现量子计算机下的安全性。本发明中投票过程中使用的环签名算法仅涉及矩阵向量间的线性运算和模运算,能够有效降低签名的生成时间和存储开销,提升电子投票系统的响应效率和存储性能优化。
[0136]
本发明将环签名实现的理论基础建立在格密码学上,用来达到抵抗量子计算机攻击的目的,此外,与传统环签名相比,基于格的环签名能大幅提高环签名效率。本发明基于理想格构造,依赖于多项式环结构,能够将方案的存储开销压缩n倍。本发明的密钥生成不包含强陷门,能够降低环签名复杂性,降低参数大小。本发明的签名过程采用拒绝抽样技术,并且采用双峰高斯分布,能够降低高斯参数,降低存储开销,同时还能提高环签名效率。
[0137]
与传统电子投票系统相比,本发明采用环签名的方法来建立电子投票系统,有效实现用户的匿名性保证,实现了高效的选民合法身份验证,采用格密码学来设计其中的签名模块,用来达到抵抗量子计算机攻击的目的,提高系统的安全性,为选民提供强匿名性保证,基于理想格构造,本发明中投票过程中使用的环签名算法仅涉及矩阵向量间的线性运算和模运算,能够有效降低签名的生成时间和存储开销,提升电子投票系统的响应效率和存储性能优化。
[0138]
实施二:
[0139]
可以使用投票系统中的系统建立模块keygen、环签名模块rsign以及验证模块rverify实现本发明的方案,其中,验证模块rverify预先设置在选举中心中,选举中心为投票系统的部分设备,进一步的,在此实施例中,使用选民的身份信息生成私钥。
[0140]
系统建立模块keygen用于构建选民环,以及生成选民环的投票处理参数和私钥集;优先的,系统建立模块中设置了私钥提取模块,可以调用私钥提取模块生成选民的私钥。系统建立模块keygen给定安全参数n,对于合法的l个选民,建立环r=(id1,id2,

,id
l
),生成主私钥msk以及第二公共参数。系统建立模块中的私钥提取模块根据第二公共参数,使用选民的身份信息以及主私钥msk,输出与选民的身份信息对应的私钥。
[0141]
参照图4,为本发明实施例提供的生成选民环的投票处理参数和私钥集的另一方法流程图,具体说明如下所述:
[0142]
s401、确定各个第二算法因子、第二哈希函数和第三哈希函数。
[0143]
系统建立模块keygen中设置系统算法kengen(1n),应用系统算法kengen(1n)基于给定安全参数n,确定各个第二算法因子、第二哈希函数和第三哈希函数;优选的,各个第二哈希函数包括整数q、w、k、以及高斯参数σ1,σ2,σg,其中,整数q、w、k、均为数值,用于后续生成选民的私钥的运算。
[0144]
第二哈希函数和第三哈希函数均为碰撞哈希函数,具体的,第二哈希函数第三哈希函数
[0145]
s402、调用预设的算法,生成随机向量和主私钥。
[0146]
进一步的,系统建立模块中还设置了算法使用算法生成随机向量以及g陷门进一步的,主私钥msk=g。
[0147]
s403、将随机向量、第二哈希函数和第三哈希函数确定为第二公共参数。
[0148]
优选的,第二公共参数也可以使用pp表示,第二公共参数pp2=(a,h1,h2)。
[0149]
s404、对于选民环中的每个选民,应用选民的身份信息,确定选民的公钥,并应用公钥、各个第二算法因子、第二公共参数以及主私钥,生成选民的私钥。
[0150]
需要说明的是,私钥提取模块中设置了私钥提取算法extract(pp,msk,id),其中,pp为第二公共参数,主私钥msk,选民的身份信息id,其中,选民的身份信息id∈{0,1}
*

[0151]
示例性的,在为选民ui生成私钥时,选民ui的身份信息为idi,私钥提取模块应用公钥、各个第二算法因子、第二公共参数以及主私钥,生成选民ui的私钥的过程如下所示:
[0152]
1)、计算di=h1(idi),令ai=[a|di];进一步的,ai为选民ui的公钥;
[0153]
2)、通过算法sampled(a,g,d
i-q,σ2)生成s
′i使得因此其中si=[s
′i|-1];
[0154]
3)、输出私钥此时可以得到选民ui的私钥
[0155]
s405、应用每个选民的私钥,组成选民环的私钥集。
[0156]
s406、应用每个选民的公钥,组成选民环的公钥集,并基于公钥集和第二公共参数,确定选民环的投票处理参数。
[0157]
本发明中的私钥提取模块借助mp陷门和多项式环格技术,相对已有格上环签名算法,进而产生维数更低的私钥矩阵,起到降低私钥存储开销的作用。此外,借助基于身份机制,消除pki机制带来的额外存储开销问题。
[0158]
进一步的,在该实例中,使用环签名模块rsign用于对利用投票处理参数中的第二公共参数和选民的私钥sk
id
来生成选民环r对选票μ的环签名sigi,将环签名名sigi和选票μ组成环签名选票,将环签名选票提交到选举中心。
[0159]
选举中心中设置环签名模块,环签名模块中设置环签名算法此处的pp为第二公共参数,选民环r=(id1,id2,

,id
l
),选民的选票μ,选民的身份信息ids及私钥
[0160]
对于每个选民,签名模块对选民的选票进行环签名处理,以得到选民的环签名,此
处以选民uj为例进行说明,选民uj的身份信息idj∈r,具体操作如下所述:
[0161]
步骤1、为选民选择签名多项式向量。
[0162]
优选的,为选民uj选择的签名多项式向量为其中j∈[l];
[0163]
步骤2、基于选票、投票处理参数和选民的私钥,确定选民的各个签名参数。
[0164]
优选的,各个签名参数包括aj、q、r、sj以及μ;其中,aj为选民uj的公钥,r为选民环,μ为选民uj的选票,sj为选民uj的私钥,使得其中sj=[s
′j|-1],即的值对2q进行取模运算后与q相等。
[0165]
步骤3、对各个签名参数和签名多项式向量进行处理,得到签名因子。
[0166]
进一步的,对签名多项式向量进行处理,得到签名多项式向量的转置向量基于第二公共参数的第三哈希函数对各个签名参数和进行处理,输出签名因子c,具体如
[0167]
步骤4、基于预设的签名运算规则,判断是否能够输出与所述签名因子对应的签名数据;若确定不能输出与签名因子对应的签名数据,则返回执行步骤1;若确定能输出与签名因子对应的签名数据,则执行步骤5。
[0168]
优选的,预设的签名运算规则如:对于j∈[l],当j≠s时,令zj=yj;当j=s时,随机选择b

{0,1},计算zs=(-1)bssc+ys,以概率输出zs,当没有输出zs时,确定不能输出与签名因子对应的签名数据;当输出zs时,确定能输出与签名因子对应的签名数据。优选的,zs可以表示签名数据。
[0169]
进一步的,当确定不能输出与签名因子对应的签名数据时,需要重新选择即返回执行步骤1,为选民重新选择签名多项式向量。
[0170]
当确定能输出与签名因子对应的签名数据时,执行步骤5。
[0171]
步骤5、基于签名因子、签名数据和选民环,得到选民环对选民的选票的环签名。
[0172]
优选的,环签名sig=({zj}
j∈[l]
,c,r)。
[0173]
步骤6、将环签名和选票组成选民的环签名选票。
[0174]
最后,将环签名和选票组成选民的环签名选票,将环签名选票向选举中心发送。
[0175]
需要说明的是,本发明中的环签名生成过程不包含复杂的陷门抽样算法,只涉及简单的线性运算,不需要巨大的算力成本,能够用于小型设备中,如智能卡等。
[0176]
进一步的,选举中心在接收到环签名选票后,可以调用验证模块对环签名选票进行验证,验证模块rverify基于第二公共参数pp,选民环r,选票μ以及环签名sigi,验证sigi是否是该环r对选票μ的环签名。
[0177]
对验证模块验证环签名选票的过程进行说明,验证模块中设置验证算法rverify(pp,r,μ,sig),其中,pp为第二公共参数,选民环r=(id1,id2,

,id
l
),选票μ以及环签名sig=({zj}
j∈[l]
,c,r),验证模块进行如下验证,当且仅当以下两个条件成立时该算法输出1,否则输出0:
[0178]
1)、对于j∈[l],验证
[0179]
2)、验证进一步的,当输出1时,表示环签名选票验证通过,当输出0时,表示环签名选票未通过验证。
[0180]
本发明以环签名为基础来构造电子投票系统,选民可以将全体选民作为一个环,并代表该环对选票进行签名。只有在该环内的选民才能参与投票,其他人员无法完成电子投票。选举中心在进行签名验证时,只知道该签名人是整个投票系统中的合法选民,而无法获得其他隐私信息,这就保证了选民在电子投票活动中的完全匿名性。此外,本发明利用格密码学来构造环签名方案,格密码学作为一种抗量子密码算法,因此,本发明能够实现量子计算机下的安全性。
[0181]
与使用gpv陷门委派方式不同,本发明使用优化后的mp陷门结构,能够提高陷门委派的效率,并通过多项式环结构降低私钥的存储开销。此外,本发明的签名算法不涉及陷门抽样,仅包含利用双峰高斯分布,并通过拒绝抽样算法来生成环签名,能够有效降低签名的生成时间。
[0182]
本发明中系统建立模块为环签名模块和验证模块生成密钥和公共参数,环签名模块使用公共参数和签名密钥(私钥)来完成环签名操作,生成的环签名由验证模块通过公共参数和验证密钥(公钥)来进行验证。与传统电子投票系统相比,本发明采用环签名的方法来建立电子投票系统,有效实现用户的匿名性保证,实现了高效的选民合法身份验证,本发明基于理想格构造,本发明中投票过程中使用的环签名算法仅涉及矩阵向量间的线性运算和模运算,能够有效降低签名的生成时间和存储开销,提升电子投票系统的响应效率和存储性能优化。
[0183]
与图1所示的方法相对应的,本发明还提供一种匿名电子投票装置,该装置用于支持图1所示的方法在实际生活中的实现,该装置可以设置在投票系统中。
[0184]
参照图5,为本发明实施例提供的一种匿名电子投票装置的结构示意图,具体说明如下所述:
[0185]
生成单元501,用于构建包含各个选民的选民环,并生成所述选民环的投票处理参数和私钥集,所述私钥集中包含每个选民的私钥;
[0186]
环签名单元502,用于对于每个所述选民,使用所述投票处理参数和所述选民的私钥,对所述选民的选票进行环签名处理,得到所述选民的环签名选票,并将所述环签名选票向预设的选举中心发送,所述环签名选票中包含选票和所述选民环对该选票的环签名。
[0187]
本发明实施例提供的装置中,构建包含各个选民的选民环,生成选民环的投票处理参数和私钥集,私钥集中包含每个选民的私钥;对于每个选民,使用投票处理参数和选民的私钥,对选民的选票进行环签名处理,得到包含该选票和选民环对该选票的环签名的环签名选票,将该环签名选票向选举中心发送,至此,选民完成匿名投票。通过使用选民环对选票进行环签名,不法分子无法通过签名追踪到对应的选民,进而可以有效的隐藏选民的信息,有效避免选票上关于选民的隐私数据的泄露,提高选民的个人信息的安全性。
[0188]
在本发明提供的另一实施例中,该装置的生成单元501,包括:
[0189]
第一确定子单元,用于确定各个第一算法因子以及第一哈希函数;
[0190]
第二确定子单元,用于基于所述第一哈希函数确定第一公共参数;
[0191]
构造子单元,用于对于所述选民环中的每个选民,应用各个所述第一算法因子,确定该选民的第一多项式向量和第二多项式向量,并基于所述第一多项式向量和所述第二多项式向量,构造所述选民的第三多项式向量和第四多项式向量;
[0192]
第一组成子单元,用于基于所述选民环中的每个选民的第三多项式向量,组成所述选民环的公钥集;
[0193]
第二组成子单元,用于基于所述选民环的每个选民的第四多项式向量,组成所述选民环的私钥集;
[0194]
第三确定子单元,用于基于所述第一公共参数和所述公钥集,确定所述选民环的投票处理参数。
[0195]
在本发明提供的另一实施例中,该装置的生成单元501,包括:
[0196]
第四确定子单元,用于确定各个第二算法因子、第二哈希函数和第三哈希函数;
[0197]
调用子单元,用于调用预设的算法,生成随机向量和主私钥;
[0198]
第五确定子单元,用于将所述随机向量、所述第二哈希函数和所述第三哈希函数确定为第二公共参数;
[0199]
生成子单元,用于对于所述选民环中的每个选民,应用所述选民的身份信息,确定所述选民的公钥,并应用所述公钥、各个所述第二算法因子、所述第二公共参数以及所述主私钥,生成所述选民的私钥;
[0200]
第三组成子单元,用于应用每个所述选民的私钥,组成所述选民环的私钥集;
[0201]
第四组成子单元,用于应用每个所述选民的公钥,组成所述选民环的公钥集,并基于所述公钥集和所述第二公共参数,确定所述选民环的投票处理参数。
[0202]
在本发明提供的另一实施例中,该装置的环签名单元502,包括:
[0203]
选择子单元,用于为所述选民选择签名多项式向量;
[0204]
第六确定子单元,用于基于所述选票、所述投票处理参数和所述选民的私钥,确定所述选民的各个签名参数;
[0205]
处理子单元,用于对各个所述签名参数和所述签名多项式向量进行处理,得到签名因子;
[0206]
判断子单元,用于基于预设的签名运算规则,判断是否能够输出与所述签名因子对应的签名数据;若确定不能输出与所述签名因子对应的签名数据,则触发所述选择子单元重新执行为所述选民选择签名多项式向量的内容;若确定能输出与所述签名因子对应的签名数据,则触发获得子单元执行基于所述签名因子、所述签名数据和所述选民环,得到所述选民环对所述选民的选票的环签名的内容;
[0207]
第五组成子单元,用于将所述环签名和所述选票组成所述选民的环签名选票。
[0208]
在本发明提供的另一实施例中,该装置还可以配置为:
[0209]
验证单元,用于所述选举中心应用所述投票处理参数对每个所述选民的环签名选票进行验证,将通过验证的环签名选票确定为合法选票,以及将未通过验证的环签名选票确定为不合法选票。
[0210]
本发明实施例还提供了一种存储介质,所述存储介质包括存储的指令,其中,在所述指令运行时控制所述存储介质所在的设备执行上述匿名电子投票方法。
[0211]
本发明实施例还提供了一种电子设备,其结构示意图如图6所示,具体包括存储器
601,以及一个或者一个以上的指令602,其中一个或者一个以上指令602存储于存储器601中,且经配置以由一个或者一个以上处理器603执行所述一个或者一个以上指令602执行上述匿名电子投票方法。
[0212]
需要说明的是,本发明提供的一种匿名电子投票方法及装置、存储介质及电子设备可用于人工智能领域、区块链领域、分布式领域、云计算领域、大数据领域、物联网领域、移动互联领域、网络安全领域、芯片领域、虚拟现实领域、增强现实领域、全息技术领域、量子计算领域、量子通信领域、量子测量领域、数字孪生领域或金融领域。上述仅为示例,并不对本发明提供的一种匿名电子投票方法及装置、存储介质及电子设备的应用领域进行限定。
[0213]
上述各个实施例的具体实施过程及其衍生方式,均在本发明的保护范围之内。
[0214]
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0215]
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0216]
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1