数据处理方法和电子投票系统与流程

文档序号:33040848发布日期:2023-01-24 21:24阅读:52来源:国知局
数据处理方法和电子投票系统与流程

1.本技术实施例涉及电子技术,涉及但不限于一种数据处理方法和电子投票系统。


背景技术:

2.一个投票系统的核心属性有两方面,一是正确性,二是可验证性。更进一步的,隐私逐渐成为越来越重要的属性。如何在保护隐私的情况下满足正确性和可验证性是新型投票系统要解决的首要问题。
3.传统的投票方案的优化,重点在传统服务器场景下的安全加固,例如抵御旁注攻击、暴力破解、sql(structured query language,结构化查询语言)注入等攻击。新兴的投票系统,例如基于区块链的投票系统提供了一些匿名的属性,可以解决投票者的冒充,抵赖等问题,但具有身份认证的区块链系统只能是联盟链或私有链,这类区块链系统仍然存在某种程度的中心化问题。此外,区块链投票协议本身也存在安全性及合约漏洞等问题。


技术实现要素:

4.有鉴于此,本技术实施例提供一种数据处理方法和电子投票系统。
5.本技术实施例的技术方案是这样实现的:
6.第一方面,本技术实施例提供一种数据处理方法,应用于电子投票系统的投票方,所述电子投票系统至少包括多个投票方和多个计票方,所述方法包括:
7.确定所述多个计票方的数量;
8.基于所述多个计票方的数量,使用秘密分享算法将自身的投票数据拆分为多个子数据,并将所述多个子数据发送至对应的计票方,使得所述电子投票系统能够根据各计票方接收到的子数据确定投票结果;
9.其中,同一投票方发送至不同计票方的子数据不同。
10.在一些实施例中,所述方法还包括:根据拆分后的所述多个子数据,确定第一承诺;将所述第一承诺发送至公告板,使得所述电子投票系统中的验证方能够基于加法同态特性和所述第一承诺,对所述投票结果进行验证。
11.在一些实施例中,所述基于所述多个计票方的数量,使用秘密分享算法将自身的投票数据拆分为多个子数据,包括:确定所述投票数据对应的投票函数;其中,所述投票函数为脉冲函数;基于所述多个计票方的数量,使用秘密分享算法将所述投票函数拆分为多个投票子函数。
12.在一些实施例中,在拆分后的所述多个子数据为多个投票子函数、且所述多个投票子函数重构的函数为脉冲函数的情况下,所述根据拆分后的所述多个子数据,确定第一承诺,包括:确定拆分后的多个投票子函数中各投票子函数的函数值;根据所述各投票子函数的函数值,确定第一承诺;对应地,所述将所述第一承诺发送至公告板,使得所述电子投票系统中的验证方能够基于加法同态特性和所述第一承诺,对所述投票结果进行验证,包括:将所述第一承诺发送至公告板,使得所述电子投票系统中的验证方能够基于加法同态
特性、所述第一承诺和脉冲函数的第一特性,对所述投票结果进行验证。
13.在一些实施例中,所述公告板属于目标区块链;对应地,所述将所述第一承诺发送至公告板,包括:将所述第一承诺发送至目标区块链,以使所述目标区块链将所述第一承诺记录于区块链账本中;其中,所述投票方、所述计票方和所述验证方为所述目标区块链中的节点。
14.第二方面,本技术实施例提供一种数据处理方法,应用于电子投票系统的计票方,所述电子投票系统至少包括多个投票方和多个计票方,所述方法包括:
15.接收所述多个投票方发送的子数据;
16.对所述多个投票方发送的子数据进行汇总,得到汇总数据;
17.将所述汇总数据发送至所述电子投票系统的结果方,使得所述结果方能够根据各计票方发送的汇总数据确定投票结果;
18.其中,所述子数据由投票方基于秘密分享算法拆分自身的投票数据生成、且同一投票方发送至不同计票方的子数据不同。
19.在一些实施例中,所述方法还包括:根据所述多个投票方发送的子数据,确定第二承诺;将所述第二承诺发送至公告板,使得所述电子投票系统中的验证方能够基于加法同态特性和所述第二承诺,对所述投票结果进行验证。
20.在一些实施例中,在同一投票方发送至不同计票方的子数据为多个投票子函数、且所述多个投票子函数重构的函数为脉冲函数的情况下,所述根据所述多个投票方发送的子数据,确定第二承诺,包括:确定所述多个投票方发送的投票子函数中各投票子函数的函数值;根据所述各投票子函数的函数值,确定第二承诺;对应地,所述将所述第二承诺发送至公告板,使得所述电子投票系统中的验证方能够基于加法同态特性和所述第二承诺,对所述投票结果进行验证,包括:将所述第二承诺发送至公告板,使得所述电子投票系统中的验证方能够基于加法同态特性、所述第二承诺和脉冲函数的第二特性,对所述投票结果进行验证。
21.在一些实施例中,所述公告板属于目标区块链;对应地,所述将所述第二承诺发送至公告板,包括:将所述第二承诺发送至目标区块链,以使所述目标区块链将所述第二承诺记录于区块链账本中;其中,所述投票方、所述计票方和所述验证方为所述目标区块链中的节点。
22.第三方面,本技术实施例提供一种电子投票系统,所述电子投票系统至少包括多个投票方和多个计票方,其中:
23.所述投票方,用于执行如上述第一方面所述的数据处理方法;
24.所述计票方,用于执行如上述第二方面所述的数据处理方法。
25.本技术实施例公开了一种数据处理方法和电子投票系统,所述电子投票系统至少包括多个投票方和多个计票方,所述投票方,用于确定所述多个计票方的数量;基于所述多个计票方的数量,使用秘密分享算法将自身的投票数据拆分为多个子数据,并将所述多个子数据发送至对应的计票方,使得所述电子投票系统能够根据各计票方接收到的子数据确定投票结果;其中,同一投票方发送至不同计票方的子数据不同。所述计票方,用于接收所述多个投票方发送的子数据;对所述多个投票方发送的子数据进行汇总,得到汇总数据;将所述汇总数据发送至所述电子投票系统的结果方,使得所述结果方能够根据各计票方发送
的汇总数据确定投票结果;其中,所述子数据由投票方基于秘密分享算法拆分自身的投票数据生成、且同一投票方发送至不同计票方的子数据不同。
附图说明
26.图1为本技术实施例数据处理方法的实现流程示意图一;
27.图2为本技术实施例数据处理方法的实现流程示意图二;
28.图3为本技术实施例数据处理方法的实现流程示意图三;
29.图4为本技术实施例数据处理方法的实现流程示意图四;
30.图5a为本技术实施例电子投票系统的组成结构示意图一;
31.图5b为本技术实施例电子投票系统的组成结构示意图二;
32.图6a为本技术实施例电子投票系统的整体架构示意图;
33.图6b为本技术实施例电子投票系统中各方之间的交互时序图;
34.图7a为本技术实施例数据处理装置的组成结构示意图一;
35.图7b为本技术实施例数据处理装置的组成结构示意图二;
36.图8a为本技术实施例客户端设备的一种硬件实体示意图;
37.图8b为本技术实施例服务器的一种硬件实体示意图。
具体实施方式
38.下面结合附图和实施例对本技术的技术方案进一步详细阐述。显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
39.在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
40.在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本技术的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。
41.需要指出,本技术实施例所涉及的术语“第一\第二\第三”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本技术实施例能够以除了在这里图示或描述的以外的顺序实施。
42.基于此,本技术实施例提供一种数据处理方法,该方法应用于电子投票系统的投票方,所述电子投票系统至少包括多个投票方和多个计票方。该方法所实现的功能可以通过客户端设备中的处理器调用程序代码来实现,当然程序代码可以保存在所述客户端设备的存储介质中。图1为本技术实施例数据处理方法的实现流程示意图一,如图1所示,所述方法包括:
43.步骤s101、确定所述多个计票方的数量;
44.这里,所述客户端设备可以为各种类型的具有信息处理能力的设备,例如导航仪、
智能手机、平板电脑、一体式电脑、可穿戴设备、膝上型便携计算机、扫地机器人、智能厨卫、智能家居、汽车等。
45.本技术实施例中,客户端设备可充当投票终端(即投票方),以便接收来自用户的投票数据。即,电子投票系统中包括多个客户端设备,任一客户端设备均可执行步骤s101至步骤s102中的方法。在一些实施例中,在客户端设备上可安装投票应用,该投票应用向用户呈现投票选项,以供用户从中选择。例如,该投票应用可以是浏览器或专用投票应用。
46.在一些实施例中,所述多个计票方的数量在每轮开始投票前是固定不变的。
47.步骤s102、基于所述多个计票方的数量,使用秘密分享算法将自身的投票数据拆分为多个子数据,并将所述多个子数据发送至对应的计票方,使得所述电子投票系统能够根据各计票方接收到的子数据确定投票结果;其中,同一投票方发送至不同计票方的子数据不同。
48.这里,秘密分享又称为秘密分割或秘密共享,是一种将秘密拆分为多个份额在一组参与者中分发的机制。通常,通过秘密分享算法,仅当大于等于阈值数量的份额被组合使用时才能重构秘密;单个份额或者小于阈值数量的份额则无法被用来重构秘密或关于秘密的信息。秘密分享算法的实现细节是本领域技术人员已知的,在下文中将不对其进行详细描述。当然,本领域技术人员可以根据实际使用需求选择合适的秘密分享算法将投票数据拆分为多个子数据,本技术实施例对此并不做限制。
49.本技术实施例中,客户端设备在接收到来自用户的投票数据之后,可以采用秘密分享算法对所述投票数据进行处理,将所述投票数据拆分为多个子数据,所述秘密分享算法使得无法通过小于阈值数量的子数据重构所述投票数据。
50.其中,拆分后的多个子数据的数量,是根据多个计票方的数量确定的。例如,投票系统中有n个计票方,则可以将投票数据拆分为n份子数据,然后给每一计票方均发送其中的一份子数据,且给不同计票方发送的子数据不同。如此,每一计票方均可以收到不同投票方发送的一份子数据,进而每一计票方可以将接收到子数据汇总发送给电子投票系统的结果方,使得结果方能够根据各计票方发送的汇总数据确定最终的投票结果。
51.举例来说,投票系统中有三个投票方和两个计票方;投票方a将投票数据a拆分为了第一子数据a和第二子数据a,并将第一子数据a发送给计票方1,将第二子数据a发送给计票方2;投票方b将投票数据b拆分为了第一子数据b和第二子数据b,并将第一子数据b发送给计票方1,将第二子数据b发送给计票方2;投票方c将投票数据c拆分为了第一子数据c和第二子数据c,并将第一子数据c发送给计票方1,将第二子数据c发送给计票方2。进而,计票方1将接收到的第一子数据a、第一子数据b和第一子数据c进行汇总,得到汇总后的第一子数据;计票方2将接收到的第二子数据a、第二子数据b和第二子数据c进行汇总,得到汇总后的第二子数据。如此,结果方可以根据汇总后的第一子数据和汇总后的第二子数据,得到最终的投票结果。
52.这里,通过上述步骤s101至步骤s102中的方法,能够使用秘密分享算法作为底层计票机制,确保了计票结果的隐私性。
53.在一些实施例中,所述步骤s102、基于所述多个计票方的数量,使用秘密分享算法将自身的投票数据拆分为多个子数据,包括:
54.步骤s1021、确定所述投票数据对应的投票函数;其中,所述投票函数为脉冲函数;
55.步骤s1022、基于所述多个计票方的数量,使用秘密分享算法将所述投票函数拆分为多个投票子函数。
56.基于前述的实施例,本技术实施例再提供一种数据处理方法,该方法应用于所述电子投票系统的投票方,图2为本技术实施例数据处理方法的实现流程示意图二,如图2所示,所述方法包括:
57.步骤s201、确定多个计票方的数量;
58.步骤s202、基于所述多个计票方的数量,使用秘密分享算法将自身的投票数据拆分为多个子数据,并将所述多个子数据发送至对应的计票方,使得所述电子投票系统能够根据各计票方接收到的子数据确定投票结果;其中,同一投票方发送至不同计票方的子数据不同;
59.步骤s203、根据拆分后的所述多个子数据,确定第一承诺;
60.这里,任一客户端(投票方)可以根据自身投票数据拆分后的多个子数据来确定第一承诺。
61.步骤s204、将所述第一承诺发送至公告板,使得所述电子投票系统中的验证方能够基于加法同态特性和所述第一承诺,对所述投票结果进行验证。
62.本技术实施例中,验证方能够获取投票方和计票房分别发送至公告板的部分承诺,并利用加法同态特性和获取的部分承诺,对投票结果的正确性进行验证。例如,可以利用pedersen算法对获取的部分承诺进行处理,达到对投票结果的正确性进行验证的目的,其中,pedersen算法包含加法同态特性。
63.这里,pederson承诺是密码学中承诺的一种,1992年被torben pryds pedersen提出。目前pedersen承诺主要搭配椭圆曲线密码学使用(当然也可以结合指数运算),具有基于离散对数困难问题的强绑定性和同态加法特性的密文形式。
64.这里,通过上述步骤s201至步骤s204中的方法,能够在保护隐私的情况下,满足投票的可验证性。
65.本技术实施例中,使用公告板来实现公开和不可篡改的属性,一种可行的公告板是使用区块链。即,使用公告板来存储投票证明(即部分承诺),通过验证该投票证明可以确保投票的正确性。
66.基于前述的实施例,本技术实施例再提供一种数据处理方法,该方法应用于电子投票系统的投票方,所述方法包括:
67.步骤s211、确定多个计票方的数量;
68.步骤s212、确定自身的投票数据对应的投票函数;其中,所述投票函数为脉冲函数;
69.这里,假设投票的标签集合是{βi},那么每一次投票可以看作是如下述公式(1)表示的脉冲函数:
[0070][0071]
举例来说,设标签集合是1至10,一个投给3号的票可以用如下公式(2)表达,其中f(x)即为投票函数,
[0072][0073]
步骤s213、基于所述多个计票方的数量,使用秘密分享算法将所述投票函数拆分为多个投票子函数;
[0074]
这里,如果电子投票系统中有n个计票方,则使用秘密分享算法将投票函数f(x)拆分为n个投票子函数,即f1(x)至fn(x)。
[0075]
举例来说,n为2,标签集合(即投票选项)是1至10号,则使用秘密分享算法将上述投票函数f(x)拆分为2个投票子函数f1(x)和f2(x),用真值表表达如下:
[0076]
x12345678910f(x)0010000000f1(x)258-314915-1-420f2(x)-2-5-73-14-9-1514-20
[0077]
步骤s214、将所述多个投票子函数发送至对应的计票方,使得所述电子投票系统能够根据各计票方接收到的投票子函数确定投票结果;其中,同一投票方发送至不同计票方的投票子函数不同;
[0078]
举例来说,有2个计票方,分别为第一计票方和第二计票方;每一投票方均使用秘密分享算法将自身投票数据对应的投票函数f(x)拆分为2个投票子函数f1(x)和f2(x),并将投票子函数f1(x)发送至第一计票方,将投票子函数f2(x)发送至第二计票方。
[0079]
步骤s215、确定拆分后的多个投票子函数中各投票子函数的函数值;
[0080]
步骤s216、根据所述各投票子函数的函数值,确定第一承诺;
[0081]
举例来说,计票方的个数为n,标签集合是1至l,投票方将投票函数f(x)拆分为n个投票子函数,即f1(x)至fn(x),每一投票子函数的函数值为x
nl
,则可以用下表来表示拆分结果:
[0082]
x12

lf(x)01

0f1(x)x
11
x
12

x
1l
f2(x)x
21
x
22

x
2l
……………fn
(x)x
n1
x
n2

x
nl
[0083]
进而,计票方可以根据拆分后的各投票子函数的函数值x
11
至x
nl
,确定第一承诺。
[0084]
步骤s217、将所述第一承诺发送至公告板,使得所述电子投票系统中的验证方能够基于加法同态特性、所述第一承诺和脉冲函数的第一特性,对所述投票结果进行验证。
[0085]
这里,本领域技术人员知晓一个引理,即设x={1,...d}且f(x)∈z,如果且那么f(x)是一个脉冲函数。进而,本技术实施例利用脉冲函数的第一特性和加法同态特性对第一承诺进行处理,以对所述投票结果进行验证。
[0086]
基于前述的实施例,本技术实施例再提供一种数据处理方法,该方法应用于电子
投票系统的投票方,所述方法包括:
[0087]
步骤s221、确定多个计票方的数量;
[0088]
步骤s222、基于所述多个计票方的数量,使用秘密分享算法将自身的投票数据拆分为多个子数据,并将所述多个子数据发送至对应的计票方,使得所述电子投票系统能够根据各计票方接收到的子数据确定投票结果;其中,同一投票方发送至不同计票方的子数据不同;
[0089]
步骤s223、根据拆分后的所述多个子数据,确定第一承诺;
[0090]
步骤s224、将所述第一承诺发送至目标区块链,以使所述目标区块链将所述第一承诺记录于区块链账本中;其中,所述投票方、所述计票方和所述验证方为所述目标区块链中的节点,使得所述电子投票系统中的验证方能够基于加法同态特性和所述第一承诺,对所述投票结果进行验证。
[0091]
这里,通过上述步骤s224能够使用区块链来实现第一承诺公开和不可篡改的属性。
[0092]
基于前述的实施例,本技术实施例再提供一种数据处理方法,该方法应用于电子投票系统的计票方,所述电子投票系统至少包括多个投票方和多个计票方。该方法所实现的功能可以通过服务器中的处理器调用程序代码来实现,当然程序代码可以保存在所述服务器的存储介质中。图3为本技术实施例数据处理方法的实现流程示意图三,如图3所示,所述方法包括:
[0093]
步骤s301、接收所述多个投票方发送的子数据;
[0094]
这里,所述服务器可以为独立的服务器,也可以为服务器集群。
[0095]
本技术实施例中,服务器可以充当计票方,用于接收各投票方(客户端设备)发送的子数据。其中,可以包括多个服务器,每一服务器充当一计票方;也可以包括一单个服务器,该单个服务器充当多个计票方。
[0096]
其中,如果存在多个服务器、且每一服务器充当一计票方,则任一客户端设备可将拆分后的多个子数据分别传送至对应的服务器。也就是说,任一服务器接收多个客户端发送的子数据。即,任一服务器均可执行步骤s301至步骤s303中的方法。
[0097]
例如,投票系统中有3个充当投票方的客户端设备和2个充当计票方的服务器;客户端a将自身的投票数据a拆分为了第一子数据a和第二子数据a,并将第一子数据a发送给服务器1,将第二子数据a发送给服务器2;客户端b将自身的投票数据b拆分为了第一子数据b和第二子数据b,并将第一子数据b发送给服务器1,将第二子数据b发送给服务器2;客户端c将自身的投票数据c拆分为了第一子数据c和第二子数据c,并将第一子数据c发送给服务器1,将第二子数据c发送给服务器2。则服务器1接收客户端a发送的第一子数据a,接收客户端b发送的第一子数据b,接收客户端c发送的第一子数据c。服务器2接收客户端a发送的第二子数据a,接收客户端b发送的第二子数据b,接收客户端c发送的第二子数据c。
[0098]
步骤s302、对所述多个投票方发送的子数据进行汇总,得到汇总数据;
[0099]
例如,服务器1接收客户端a发送的第一子数据a,接收客户端b发送的第一子数据b,接收客户端c发送的第一子数据c,然后将这些子数据进行汇总,得到第一汇总数据。服务器2接收客户端a发送的第二子数据a,接收客户端b发送的第二子数据b,接收客户端c发送的第二子数据c,然后将这些子数据进行汇总,得到第二汇总数据。
[0100]
步骤s303、将所述汇总数据发送至所述电子投票系统的结果方,使得所述结果方能够根据各计票方发送的汇总数据确定投票结果;其中,所述子数据由投票方基于秘密分享算法拆分自身的投票数据生成、且同一投票方发送至不同计票方的子数据不同。
[0101]
例如,结果方根据第一汇总数据(包括第一子数据a、第一子数据b和第一子数据c)和第二汇总数据(包括第二子数据a、第二子数据b和第二子数据c),就可以确定最终的投票结果。
[0102]
这里,通过上述步骤s301至步骤s303中的方法,能够使用秘密分享算法作为底层计票机制,确保了计票结果的隐私性。
[0103]
基于前述的实施例,本技术实施例再提供一种数据处理方法,该方法应用于电子投票系统的计票方,图4为本技术实施例数据处理方法的实现流程示意图四,如图4所示,所述方法包括:
[0104]
步骤s401、接收所述多个投票方发送的子数据;
[0105]
步骤s402、对所述多个投票方发送的子数据进行汇总,得到汇总数据;
[0106]
步骤s403、将所述汇总数据发送至所述电子投票系统的结果方,使得所述结果方能够根据各计票方发送的汇总数据确定投票结果;
[0107]
其中,所述子数据由投票方基于秘密分享算法拆分自身的投票数据生成、且同一投票方发送至不同计票方的子数据不同;
[0108]
步骤s404、根据所述多个投票方发送的子数据,确定第二承诺;
[0109]
这里,如果存在多个服务器、且每一服务器充当一计票方,则任一服务器可以根据多个客户端设备发送的子数据来确定第二承诺。
[0110]
步骤s405、将所述第二承诺发送至公告板,使得所述电子投票系统中的验证方能够基于加法同态特性和所述第二承诺,对所述投票结果进行验证。
[0111]
这里,通过上述步骤s401至步骤s405中的方法,能够在保护隐私的情况下,满足投票的可验证性。
[0112]
在一些实施例中,所述公告板属于目标区块链;对应地,所述将所述第二承诺发送至公告板,包括:将所述第二承诺发送至目标区块链,以使所述目标区块链将所述第二承诺记录于区块链账本中;其中,所述投票方、所述计票方和所述验证方为所述目标区块链中的节点。
[0113]
本技术实施例中,使用公告板来实现公开和不可篡改的属性,一种可行的公告板是使用区块链。即,使用公告板来存储投票证明(即部分承诺),通过验证该投票证明可以确保投票的正确性。
[0114]
基于前述的实施例,本技术实施例再提供一种数据处理方法,该方法应用于电子投票系统的计票方,所述方法包括:
[0115]
步骤s411、接收所述多个投票方发送的子数据;
[0116]
步骤s412、对所述多个投票方发送的子数据进行汇总,得到汇总数据;
[0117]
步骤s413、将所述汇总数据发送至所述电子投票系统的结果方,使得所述结果方能够根据各计票方发送的汇总数据确定投票结果;
[0118]
其中,所述子数据由投票方基于秘密分享算法拆分自身的投票数据生成、且同一投票方发送至不同计票方的子数据不同;
[0119]
步骤s414、在同一投票方发送至不同计票方的子数据为多个投票子函数、且所述多个投票子函数重构的函数为脉冲函数的情况下,确定所述多个投票方发送的投票子函数中各投票子函数的函数值;
[0120]
步骤s415、根据所述各投票子函数的函数值,确定第二承诺;
[0121]
举例来说,计票方的个数为n,标签集合是1至l,任一投票方将自身投票数据对应的投票函数f(x)拆分为n个投票子函数,即f1(x)至fn(x),每一投票子函数的函数值为x
nl
,则可以用下表来表示拆分结果:
[0122]
x12

lf(x)01

0f1(x)x
11
x
12

x
1l
f2(x)x
21
x
22

x
2l
……………fn
(x)x
n1
x
n2

x
nl
[0123]
进而,计票方1可以根据不同投票方发送的投票子函数的函数值x
11
至x
1l
(上表仅为一个投票方的拆分数据)确定第二承诺,计票方2可以根据不同投票方发送的投票子函数的函数值x
21
至x
2l
确定第二承诺,同样地,计票方n可以根据不同投票方发送的投票子函数x
n1
至x
nl
确定第二承诺。
[0124]
步骤s416、将所述第二承诺发送至公告板,使得所述电子投票系统中的验证方能够基于加法同态特性、所述第二承诺和脉冲函数的第二特性,对所述投票结果进行验证。
[0125]
这里,本领域技术人员知晓一个引理,即设x={1,...d}且f(x)∈z,如果且那么f(x)是一个脉冲函数。进而,本技术实施例利用脉冲函数的第二特性和加法同态特性对第二承诺进行处理,以对所述投票结果进行验证。
[0126]
基于前述的实施例,本技术实施例提供一种电子投票系统,图5a为本技术实施例电子投票系统的组成结构示意图一,如图5a所示,电子投票系统50至少包括多个投票方51和多个计票方52,其中:
[0127]
所述投票方51,用于确定所述多个计票方52的数量;基于所述多个计票方52的数量,使用秘密分享算法将自身的投票数据拆分为多个子数据,并将所述多个子数据发送至对应的计票方52,使得所述电子投票系统能够根据各计票方52接收到的子数据确定投票结果;其中,同一投票方51发送至不同计票方52的子数据不同;
[0128]
所述计票方52,用于接收所述多个投票方51发送的子数据;对所述多个投票方51发送的子数据进行汇总,得到汇总数据;将所述汇总数据发送至所述电子投票系统的结果方,使得所述结果方能够根据各计票方52发送的汇总数据确定投票结果;其中,所述子数据由投票方51基于秘密分享算法拆分自身的投票数据生成、且同一投票方51发送至不同计票方52的子数据不同。
[0129]
基于前述的实施例,本技术实施例再提供一种电子投票系统,图5b为本技术实施例电子投票系统的组成结构示意图二,如图5b所示,电子投票系统500至少包括多个投票方501、多个计票方502、结果方503和验证方504,其中:
[0130]
所述投票方501,用于确定所述多个计票方502的数量;基于所述多个计票方502的数量,使用秘密分享算法将自身的投票数据拆分为多个子数据,并将所述多个子数据发送至对应的计票方502,使得所述电子投票系统能够根据各计票方502接收到的子数据确定投票结果;其中,同一投票方501发送至不同计票方502的子数据不同;根据拆分后的所述多个子数据,确定第一承诺;将所述第一承诺发送至公告板,使得所述电子投票系统中的验证方能够基于加法同态特性和所述第一承诺,对所述投票结果进行验证;
[0131]
所述计票方502,用于接收所述多个投票方501发送的子数据;对所述多个投票方501发送的子数据进行汇总,得到汇总数据;将所述汇总数据发送至所述电子投票系统的结果方503,使得所述结果方503能够根据各计票方502发送的汇总数据确定投票结果;其中,所述子数据由投票方501基于秘密分享算法拆分自身的投票数据生成、且同一投票方501发送至不同计票方502的子数据不同;根据所述多个投票方发送的子数据,确定第二承诺;将所述第二承诺发送至公告板,使得所述电子投票系统中的验证方能够基于加法同态特性和所述第二承诺,对所述投票结果进行验证;
[0132]
所述结果方503,用于接收所述多个计票方502发送的汇总数据,并根据所述汇总数据确定投票结果;
[0133]
所述验证方504,用于从公告板获取所述多个投票方501发送第一承诺,以及所述多个计票方502发送的第二承诺;基于加法同态特性、所述第一承诺和所述第二承诺,对所述投票结果进行验证。
[0134]
这里,客户端设备可以充当投票方,中间服务器可以充当计票方,同样地,结果方和验证方也可以用服务器实现。
[0135]
基于前述的实施例,本技术实施例再提供一种电子投票系统,该电子投票系统是一种公开可验证的分布式投票系统,使用函数秘密共享作为底层计票机制,确保了计票结果的隐私性。此外,使用公告板来存储投票证明,通过验证所述投票证明可以确保投票的正确性。
[0136]
第一、投票的函数化表达;
[0137]
已知投票的标签集合是{βi},那么每一次投票可以看作是一个脉冲函数,即如下公式(3)所示,
[0138][0139]
第二、函数秘密共享;
[0140]
将投票函数f进行秘密共享,就是将其每一个标签下的取值进行拆分(设标签是有限的),使f

f1,...fn。其中,任何单独的fi都不会暴露f的任何信息,并满足
[0141]
第三、举例说明;
[0142]
设标签集合是1至10,一个投给3号的票可以用如下公式(4)表达,
[0143][0144]
写成真值表就是:
[0145]
x12345678910f(x)0010000000
[0146]
举例,一种朴素的n=2方的函数秘密共享如下表所示:
[0147]
x12345678910f(x)0010000000f1(x)278-414915-1-42f2(x)-2-7-74-14-9-1514-2
[0148]
第四、公开可验证;
[0149]
为了防止投票方伪造选票,引入一个引理来证明投票的正确性,并使用pedersen承诺保护隐私。该引理为:设x={1,...d}且f(x)∈z,如果且那么f(x)是一个脉冲函数。也就是说,可以使用零知识,即在不揭露投票信息的情况下验证其有效性。
[0150]
其中,使用公告板来实现公开和不可篡改的属性,一种可行的公告板是使用区块链。
[0151]
下面,对该电子投票系统进行详细地说明:
[0152]
图6a为本技术实施例电子投票系统的整体架构示意图,如图6a所示,按角色划分,该电子投票系统分为投票方61、计票方62、结果方63和验证方64。其中,系统参数g为椭圆曲线上阶为大素数p的点,投票方61的数量为m,计票方62的数量为n。
[0153]
该电子投票系统共分为初始化、投票、计票和验证四个阶段,其中:
[0154]
1)、初始化阶段;
[0155]
计票方设定初始参数g、投票标签集合a(长度为l)并公开,验证方启动公告板,各参与方之间建立可信连接与身份认证。
[0156]
2)、投票阶段;
[0157]
对于任一投票方ck(k=1...m),生成投票函数fk,执行split算法将fk拆分成f
k1
,...f
kn
并满足并利用下述公式(5)计算部分承诺,
[0158][0159]
投票方将f
ki
发送给计票方pi(i=1,...n),并将σ
kb
发送给公告板。
[0160]
3)、计票阶段;
[0161]
任一计票方pi总计接收m个投票分片{f
ki
}(k=1

m),计算并将fi发送给结果方。
[0162]
计票方利用下述公式(6)计算部分承诺,并将该承诺发送给公告板,
[0163][0164]
结果方计算对于每一个x∈a,计算fr(x)即为x最终的得票结果。
[0165]
4)、验证阶段;
[0166]
对每一个投票方ck(k=1

m)的投票,验证方从公告板上获取σ
kb
以及{σ
ki


ki
},计算和然后通过下述公式(7)验证投票是否合规,
[0167][0168]
如果公式(7)验证通过,则证明投票合规。
[0169]
其中,上述函数分片与承诺的关系如下表所示:
[0170][0171]
图6b为本技术实施例电子投票系统中各方之间的交互时序图,如图6b所示,电子投票系统中各方(包括投票方、计票方、结果方和验证方)先进行初始化。然后,投票方进行投票拆分,将拆分的投票分片发送给计票方,并计算部分承诺σ
kb
发送给验证方。计票方将各投票方发送的投票分片进行汇总,得到中间结果,并将中间结果发送给结果方以计算最终结果,以及计算部分承诺{σ
ki


ki
}发送给验证方。验证方根据部分承诺σ
kb
和{σ
ki


ki
}进行投票正确性(即有效性)的验证。
[0172]
基于前述的实施例,本技术实施例提供一种数据处理装置,该装置包括所包括的各单元、以及各单元所包括的各模块、以及各模块所包括的各部件,可以通过客户端设备中的处理器来实现;当然也可通过具体的逻辑电路实现;在实施的过程中,处理器可以为cpu(central processing unit,中央处理器)、mpu(microprocessor unit,微处理器)、dsp(digital signal processing,数字信号处理器)或fpga(field programmable gate array,现场可编程门阵列)等。
[0173]
图7a为本技术实施例数据处理装置的组成结构示意图一,如图7a所示,所述装置70包括:
[0174]
数量确定单元71,用于确定所述多个计票方的数量;
[0175]
投票拆分单元72,用于基于所述多个计票方的数量,使用秘密分享算法将自身的投票数据拆分为多个子数据,并将所述多个子数据发送至对应的计票方,使得所述电子投票系统能够根据各计票方接收到的子数据确定投票结果;
[0176]
其中,同一投票方发送至不同计票方的子数据不同。
[0177]
在一些实施例中,所述装置还包括:
[0178]
第一承诺确定单元,用于根据拆分后的所述多个子数据,确定第一承诺;
[0179]
第一发送单元,用于将所述第一承诺发送至公告板,使得所述电子投票系统中的验证方能够基于加法同态特性和所述第一承诺,对所述投票结果进行验证。
[0180]
在一些实施例中,所述投票拆分单元72,包括:
[0181]
函数确定模块,用于确定所述投票数据对应的投票函数;其中,所述投票函数为脉冲函数;
[0182]
投票拆分模块,用于基于所述多个计票方的数量,使用秘密分享算法将所述投票函数拆分为多个投票子函数。
[0183]
在一些实施例中,在拆分后的所述多个子数据为多个投票子函数、且所述多个投票子函数重构的函数为脉冲函数的情况下,所述第一承诺确定单元,包括:
[0184]
第一函数值确定模块,用于确定拆分后的多个投票子函数中各投票子函数的函数值;
[0185]
第一承诺确定模块,用于根据所述各投票子函数的函数值,确定第一承诺;
[0186]
对应地,所述第一发送单元,包括:
[0187]
第一发送子单元,用于将所述第一承诺发送至公告板,使得所述电子投票系统中的验证方能够基于加法同态特性、所述第一承诺和脉冲函数的第一特性,对所述投票结果进行验证。
[0188]
在一些实施例中,所述公告板属于目标区块链;对应地,所述第一发送子单元,包括:
[0189]
第一发送部件,用于将所述第一承诺发送至目标区块链,以使所述目标区块链将所述第一承诺记录于区块链账本中;
[0190]
其中,所述投票方、所述计票方和所述验证方为所述目标区块链中的节点。
[0191]
基于前述的实施例,本技术实施例再提供一种数据处理装置,该装置包括所包括的各单元、以及各单元所包括的各模块、以及各模块所包括的各部件,可以通过服务器中的处理器来实现;当然也可通过具体的逻辑电路实现;在实施的过程中,处理器可以为cpu、mpu、dsp或fpga等。
[0192]
图7b为本技术实施例数据处理装置的组成结构示意图二,如图7b所示,所述装置700包括:
[0193]
数据接收单元701,用于接收所述多个投票方发送的子数据;
[0194]
数据汇总单元702,用于对所述多个投票方发送的子数据进行汇总,得到汇总数据;
[0195]
结果发送单元703,用于将所述汇总数据发送至所述电子投票系统的结果方,使得所述结果方能够根据各计票方发送的汇总数据确定投票结果;
[0196]
其中,所述子数据由投票方基于秘密分享算法拆分自身的投票数据生成、且同一投票方发送至不同计票方的子数据不同。
[0197]
在一些实施例中,所述装置还包括:
[0198]
第二承诺确定单元,用于根据所述多个投票方发送的子数据,确定第二承诺;
[0199]
第二发送单元,用于将所述第二承诺发送至公告板,使得所述电子投票系统中的验证方能够基于加法同态特性和所述第二承诺,对所述投票结果进行验证。
[0200]
在一些实施例中,在同一投票方发送至不同计票方的子数据为多个投票子函数、且所述多个投票子函数重构的函数为脉冲函数的情况下,所述第二承诺确定单元,包括:
[0201]
第二函数值确定模块,用于确定所述多个投票方发送的投票子函数中各投票子函
数的函数值;
[0202]
第二承诺确定模块,用于根据所述各投票子函数的函数值,确定第二承诺;
[0203]
对应地,所述第二发送单元,包括:
[0204]
第二发送子单元,用于将所述第二承诺发送至公告板,使得所述电子投票系统中的验证方能够基于加法同态特性、所述第二承诺和脉冲函数的第二特性,对所述投票结果进行验证。
[0205]
在一些实施例中,所述公告板属于目标区块链;对应地,所述第二发送子单元,包括:
[0206]
第二发送部件,用于将所述第二承诺发送至目标区块链,以使所述目标区块链将所述第二承诺记录于区块链账本中;
[0207]
其中,所述投票方、所述计票方和所述验证方为所述目标区块链中的节点。
[0208]
以上装置实施例的描述和系统实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本技术装置实施例和系统实施例中未披露的技术细节,请参照本技术方法实施例的描述而理解。
[0209]
需要说明的是,本技术实施例中,如果以软件功能模块的形式实现上述的数据处理方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机、服务器等)执行本技术各个实施例所述方法的全部或部分。而前述的存储介质包括:u盘、移动硬盘、rom(read only memory,只读存储器)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本技术实施例不限制于任何特定的硬件和软件结合。
[0210]
对应地,本技术实施例提供一种客户端设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述实施例中提供的数据处理方法中的步骤。
[0211]
对应地,本技术实施例提供一种服务器,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述实施例中提供的数据处理方法中的步骤。
[0212]
对应地,本技术实施例提供一种可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述数据处理方法中的步骤。
[0213]
这里需要指出的是:以上存储介质和设备实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本技术存储介质和设备实施例中未披露的技术细节,请参照本技术方法实施例的描述而理解。
[0214]
需要说明的是,图8a为本技术实施例客户端设备的一种硬件实体示意图,如图8a所示,该客户端设备80的硬件实体包括:处理器81、通信接口82和存储器83,其中
[0215]
处理器81通常控制客户端设备80的总体操作。
[0216]
通信接口82可以使客户端设备80通过网络与其他客户端设备或服务器通信。
[0217]
存储器83配置为存储由处理器81可执行的指令和应用,还可以缓存待处理器81以及客户端设备80中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信
数据和视频通信数据),可以通过flash(闪存)或ram(random access memory,随机访问存储器)实现。
[0218]
图8b为本技术实施例服务器的一种硬件实体示意图,如图8b所示,该服务器800的硬件实体包括:处理器801、通信接口802和存储器803,其中
[0219]
处理器801通常控制服务器800的总体操作。
[0220]
通信接口802可以使服务器800通过网络与其他服务器或客户端设备通信。
[0221]
存储器803配置为存储由处理器801可执行的指令和应用,还可以缓存待处理器801以及服务器800中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过flash(闪存)或ram(random access memory,随机访问存储器)实现。
[0222]
在本技术所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
[0223]
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
[0224]
另外,在本技术各实施例中的各功能单元可以全部集成在一个处理模块中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
[0225]
本技术所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
[0226]
本技术所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。
[0227]
本技术所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
[0228]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1