【技术实现步骤摘要】
基于部分盲签名与区块链的匿名和抗胁迫电子投票系统
[0001]本专利技术属于区块链
,具体涉及一种基于部分盲签名与区块链的匿名和抗胁迫电子投票系统。
技术介绍
[0002]选举委员会通过中心投票系统公布选举活动,具有选举权的选民可以通过中心投票系统投票,选举委员会完成计票工作,通过中心投票系统广播投票活动并收集所有的选票。然而单点式、中心化的投票系统承担着很大的风险,它不仅需要发布投票活动,还需要有一个庞大的数据库来存储选票信息等,有崩溃或是遭到不法人士攻击的风险。由此可以看出这种传统的电子投票系统过分依赖于一个中心化的平台来发布投票活动和存储选票,不能保证投票的安全性,而且中心化的投票系统不可避免地面临单点故障的所有风险。
[0003]若想要用电子投票完全取代传统投票,则需要一个完全安全的电子投票系统,否则难以替代。而一个成熟安全的电子投票系统需要满足以下7个基本特性:
[0004](1)完整性:在所有投票中,系统只统计所有有效投票;
[0005](2)合法性:经过身份认证的合法投票者才可以参 ...
【技术保护点】
【技术特征摘要】
1.基于部分盲签名与区块链的匿名和抗胁迫电子投票系统,所述电子投票系统包括投票者、注册员、认证机构、主持人、选举候选人、区块链网络和计票机构,其特征在于:所述投票者是在选举投票中被授予投票权利的一个合格选民的集合:{v
i
∈γ|1≤i≤n},用v
i
代表投票者;所述注册员是一个实体,它会生成唯一、随机的数字选票,并以匿名方式与选民共享,用代表注册员;所述认证机构是一个实体,为避免注册员既要注册又要认证,权力太过于集中,因此为达到去中心化添加一个认证机构CA,它会对投票者v
i
进行基于身份的部分盲签名认证,认证通过的投票者v
i
会获取新的公私钥对来实现匿名性,可以用CA代表认证机构;所述主持人是一个独立的实体,负责对投票者v
i
的身份进行二次加密隐藏,并匿名地让他们发送注册员加密的选票,用代表主持人;所述选举候选人为人或事物,即能够参加被选举投票的合格候选人,用一个集合来存放表示:{cand
k
∈C|1≤k≤m},用cand
k
代表候选人;所述区块链网络是一个不受信任的点对点P2P网络作为区块链网络,它维护了一个公开可访问的区块链并能够运行选举智能合约;所述计票机构是作为可信任的第三方,计票机构是一个在投票阶段结束后,进行计票的机构;所述电子投票系统具体操作如下:(1).投票者注册阶段,选民登记,是指投票者向注册员证明其是否是合格的选民,证明其投票资格的初步阶段;投票者提供选举规定的必要证据,一旦被注册员确认资格,注册员就会把投票者加入到合格选民集合γ中:(1.1)注册员密钥生成:注册员需要一对签名密钥对,以便在将合格选民添加到合格选民集合γ时对选民身份进行签名认证;注册员随机选择一个密钥(是1到p
‑
1的整数集合)并计算出对应的公钥为得到注册员的签名密钥对(x
r
,y
r
);(1.2)投票者密钥生成和登记:投票者v
i
必须拥有与其选举身份对应的投票密钥对,因此投票者v
i
随机选择密钥并计算出对应的公钥为得到投票者的投票密钥对(x
i
,y
i
);为了进行投票者注册,投票者和注册员需要共享他们各自的公钥;(1.3)签署投票者公钥:为了授予投票者投票权,注册员首先验证投票者的资格,然后在将合格投票者添加到合格选民集合前需要签署注册员的公钥;注册员随机选择u
i
,其中1<u
i
<p
‑
1并且gcd(u
i
,p
‑
1)(gcd意为求最大公因数),然后进行如下计算:1)(gcd意为求最大公因数),然后进行如下计算:其中:g是的一个生成元,是一个公开可选择的乘法循环群,p是该乘法循环群的素数阶,Hash是一个哈希函数,(w
i
,s
i
)是签名,u
i
是随机数,x
r
是注册员密钥,y
i
是投票者公钥;在投票者注册阶段结束时,注册员会公开公布合格选民集合;(2).投票者身份认证并获取新身份阶段,认证身份并拿到新身份,是指投票者向认证机构CA证明其是否是合格的投票者,证明其投票资格,认证通过后对投票者的新身份进行
盲签名;(2.1)系统参数设置:首先是对系统参数的生成:(2.1.1).选择一个四元组{F
ρ
,E/F
ρ
,G,P};其中ρ是k位的质数;F
ρ
是q阶的素数域;E/F
ρ
是一组椭圆曲线的点集合;G是椭圆曲线上的加法循环群;P是G的生成元;(2.1.2).随机选择用来计算系统主私钥,P
Pub
=xP作为系统的主公钥;(2.1.3).选择三个哈希函数:(2.1.3).选择三个哈希函数:(2.1.3).选择三个哈希函数:其中:是1到p的整数,{0,1}
*
中的代表0或1的任意多次,G是椭圆曲线上的加法循环群;(2.1.4).最后将系统主私钥x保密存放并输出全局系统参数:其中:E/F
ρ
是一组椭圆曲线的点集合;G是椭圆曲线上的加法循环群;P是G的生成元,F
ρ
是q阶的素数域,P
Pub
是系统的主公钥,H0,H1,H2代表三个哈希函数;(2.2)密钥提取:是对认证机构CA公私钥对的生成,以便后面进行盲签名,具体分为两步:(2.2.1).认证机构CA将其身份ID
CA
通过一个安全信道传输给PKG,然后PKG会先随机选择一个并进行如下计算:R
CA
=r
CA
P#(18)h
CA
=H0(ID
CA
,R
CA
)#(19)其中:P是G的生成元,r
CA
是中的随机数,H0是一个哈希函数,ID
CA
是认证机构的身份标识;(2.2.2).再计算出私钥d
CA
=r
CA
+h
CA
x;可信任第三方PKG会将(d
CA
,R
CA
)通过安全信道传输给认证机构CA,并且认证机构CA的公钥P
CA
=R
CA
+h
CA
P
Pub
;认证机构CA会根据判断如下等式是否成立来决定是否接收(d
CA
,R
CA
),若不成立则不接收;P
CA
=d
CA
P=R
CA
+h
CA
P
Pub
#(20)其中:R
CA
、h
CA
是前一步计算出的中间参数,P
Pub
是系统的主公钥;(2.3)基于身份的部分盲签名:认证机构的身份是ID
C
,投票者的身份是ID
i
,需要被盲签名的消息m={x
i
′
,y
i
′
}是投票者新的身份认证机构CA与投票者同意的公共信息是C={y
i
,(w
i
,s
i
)},然后会经历以下几个步骤:(2.3.1)首先由于C是公共信息,当投票者v
i
将公共信息发送给认证机构CA后,CA会通过认证以下等式是否有效成立,若成立则说明投票者v
i
是合法的投票者,若不成立则说明非法不予执行后续步骤;其中:y
i
是投票者的公钥,(w
i
,s
i
)是注册员生成的签名对,p是质数;
(2.3....
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。