一种可验证选票有效性的电子投票系统技术方案

技术编号:39818837 阅读:9 留言:0更新日期:2023-12-22 19:38
发明专利技术名称:一种可验证选票有效性的电子投票系统摘要:本发明专利技术涉及应用密码学领域,公开了一种可验证选票有效性的电子投票方案

【技术实现步骤摘要】
一种可验证选票有效性的电子投票系统


[0001]本专利技术涉及隐私保护及安全多方计算领域,具体讲是涉及一种基于隐私保护的选票可验证的电子投票方案


技术介绍

[0002]电子投票具有传统纸质投票无可比拟的效率优势,而且有利于节约成本

保护环境,但是电子投票也面临一定的安全的威胁,比如投票人的合法性

选票的有效性

投票结果的正确性

可验证性等

针对电子投票在安全方面的问题,许多方法利用了密码学中的技术来保证投票人的隐私和投票结果的正确,比如基于盲签名或环签名的电子投票,基于同态加密的电子投票等
。1992
年,日本学者
Fujioka、Okamoto

Ohta
提出了第一个适用于大规模投票的协议是
Foo
投票方案

投票人需要将填好的选票进行盲化,然后发给投票管理者,管理者对其签名后发给投票人,投票人脱盲后投给计票中心

后来,
Foo
方案被证明存在选票碰撞的缺陷,因此关于对
Foo
方案有许多改进的方法,如罗芬芬等人
2015
年提出基于
F00
投票协议的无收据电子投票方案等

最近的基于盲签名的投票方案如
2020
年 Mahender Kumar,
提出了一种完善的端到端可验证的投票方案/>。
由于投票系统需要计票的功能,因此基于同态加密的算法被应用于投票系统中,如使用
Paillier
加密系统实现选票按照密文形式进行运算,得到最后的计票结果
。2019
年,刘忆宁提出了利用秘密分享和
K
匿名的电子投票方案,使用秘密分享的方法构建投票系统,将选票表达为一个多项式的值,最后复原多项式,得到计票的结果

[0003]以上这些方法的共同特点是,为了实现选票的隐私性,投票人首先将选票盲化或加密,这样导致投票管理者无法从盲化或加密后的数据中确定选票是否是合理的,比如,规定最多选
m
个候选人,投票人选了多于
m+1
个;或者,投票人给自己支持的候选人投多于
1 票,这样的选票应该都是无效的

但是由于选票内容隐私的需要,收票人无法判断其形式是否正确

现有的方法大多假设投票人都是诚实的模型,这在实际应用中具有一定的局限性


技术实现思路

[0004]本专利技术要解决的技术问题在于,针对现有的投票方案中缺乏有效性检查的问题,提出一种可对选票的合法性进行检查的电子投票方案

[0005]本专利技术所采用的技术方法是:验证投票人的身份合法性之后,首先,将投票人的密文选票进行按位同态相加,然后通过设计一个比较协议,将加和与规定的最多候选人数
m 进行比较,如果超过
m
,则选票无效

进一步,将选票的每一位,也就是对每个候选人的选择,与2进行比较,如果存在一位大于2或者小于0,则选票无效

只有通过选票验证的选票才能计入总数

通过以上验票步骤,可以成功将投票人的不合理投票排除,从而保证了电子投票的公平性和正确性

[0006]与现有技术相比,本专利技术的有益效果是降低了对投票人的信任要求,从而使投票方案更适用于现实生活

[0007]本专利技术中的一种可验证选票有效性的电子投票系统涉及的实体有:投票管理中心 MC
,投票人
Vi
,检票中心
VC
,计票中心
CC。
附图说明
[0008]下面结合附图对本专利技术涉及到的比较协议做进一步说明:图1说明了本专利技术实施例中投票人和检票中心之间的比较协议示意图

具体实施方式
[0009]具体算法实施步骤如下:
(1)
系统初始化
setup:(a)MC
公布所有候选人
(n

)
信息,可选候选人数
m(m<n)
,以及投票人列表和投票规则等;
(b)Paillier
加密密钥生成:随机选取两个独立的大素数
p

q
,满足最大公约数
gcd(pq,(p
‑ꢀ
1)(q

1))
=1,计算
N

pq

λ

lcm(p

1,q

1)
,随机选取
g∈Z
*N2
,
不妨选择
g

N+1
,公钥为 pk

(N,g)
,私钥为
sk

(
λ
)

(c)ElGammal
签名密钥生成:另选大素数
p'

g'

Z
p'
的生成元,私钥为
x

x<p'
,相应公钥为
y'

g'
x mod p'
,公开
p'

g'

y'

(d)MC
初始化列表
list
V

{(ID
i
,0)}
i∈[1,vn],其中
v
n
是投票人总数;
(e)
投票中心
VC
初始化列表
list
C
为空;
(f)
计票中心
CC
初始化
n
维向量
P

(p1,p2,...p
n
)

(1,1,...1)

(2)
投票人注册和认证:
(a)
投票人
v
i
(
身份信息
ID
i
)
用假名
pID
i

MC
注册,以达到匿名投票的作用,投票人把消息
(ID
i
||pID
i
)
通过安全信道发给
MC

(b)MC
检查投票人列表
list
V
,如果
(ID
i
,0)
位于列表中,则将对应的
(ID...

【技术保护点】

【技术特征摘要】
mod (p'

1)
,令
σ
pidi
=(r, s)

MC
对假名的签名,
MC
通过安全信道发送
σ
pidi
给投票人
v
i
;(
d
)当
v
i
收到签名
σ
pidi
后,首先根据自己的
pID
i
验证
σ
pidi,
,若验证通过,则
v
i
可得投票证书
cert=(pID
i
, σ
pidi
)
作为投票凭证,同时,投票中心
VC
增加一个元素
(pID
i
, 0)
到列表
list
C
;(
e
) 通过认证的投票人
v
i
则根据(1)
(b)
和(1)
(c)
选择自己的加密密钥和签名密钥,并公开假名及公钥;(3)投票人根据自己的意愿,对候选人进行投票:(
a
)投票人
v
i
将自己选票表示为一个比特串
(b1, b2,...b
n
)

b
j
∈{0, 1}
j∈[1..n]
,1表示赞成,0表示其他,并用自己的公钥
pki
对选票逐位进行加密,形成选票形式为
{[b
j
]
pki
} j∈[1..n]
;(
b
)投票人将选票
blt={[b
j
]
pki
} j∈[1..n]
,先连接
cert
i
,得到消息
m
i
=(blt||cert
i
)
,并用自己的私钥签名
σ
i
=
σ
vi
(m
i
)
,然后用投票(检票)中心
VC
的公钥加密得
C
i
=Enc
vc
(m
i
||
σ
i
)
,发给投票中心
VC
;(4)投票中心
VC
每收到一个选票
C
i
,在不解密的情况下,验证选票的有效性:(
a
) 验证投票人的合法性:解密投票证书:令
L(x)=(x

1)/N
,先计算明文
M
i
=L(C
i mod N2)/L(g
λ mod N2) mod N ,从
M
i
分离出
σ
i

cert
i ,根据
cert
i
,用
MC
的签名公钥检查
cert
i
的合法性,若验证不通过,投票无效;否则,进一步验证投票人的签名:根据
cert
i
包含的假名,获得
pID
i
和对应公钥,验证签名
σ
i
的正确性,若验证不通过,选票无效;若验证通过,进一步检查投票人是否重复投票:检查
list
C
,如果
(pID
i
, 1)
位于列表中,则是重复投票,否则转(
b
);(
b
)检查选票形式的有效性:首先,投票中心从
σ
i

m
i
分离出
blt={[b
j
]
pki
} j∈[1..n]
,计算
x=sumc=
Π
j=[0..n]
[b
j
]
pki
,并用
v
i
的公钥加密
m
得到
y=[m]
pki
;投票中心秘密选择一个函数
f(x)=k1x+k2(
k1, k2为
Z
N
中保密的非零整数),使用
v
i
的加密密钥计算
f(x)

f(y)
的密文:
[f(x)]
pki
=x
k1
.[k2]

[f(y)]
pki
=y
k1
.[k2]
;发送
([f(x)]
pki
, [f(y)]
pki
) 给
v
i

v
i
收到
[f(x)]
pki

[f(y)]
pki
后分别解密,然后比较
f(x)

f(y)
,如果
f(x)>f(y)

com=1
,否则
com=0

v
i
发送
com
给投票中心;投票中心收到
com
后,如果(
com=1

k1>0
)或者(
com=0

k1<0
),认定选票无效;否则转
(c)
; (
c
)逐位检查选票的有效性:投票中心秘密选择一个随机的二进制串
C
i
=(c1,c2,...c
n
)

c
j
∈{0, 1}
,并依据
c
j
确定以下两个向量
A
i
=(a1,a2,...a
n
)

D
i
=(d1,d2,...d
n
)
;首先,选择一个对<...

【专利技术属性】
技术研发人员:孙玉红王诗雨王家涛
申请(专利权)人:曲阜师范大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1